Aktuelle Zeit: 13.05.2025, 16:03

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Eventreciver und strcpy
BeitragVerfasst: 02.03.2008, 11:51 
Offline
Benutzeravatar

Registriert: 26.04.2007, 00:12
Beiträge: 37
Hallo. Ich kämpfe schon seit mehreren Tagen mit einem Problem:

Ich habe meinen Eventreciver aufgebaut und frage den Klick eines Buttons ab.
Wenn der Button gedrückt wird, muss ein String konvertiert werden:
Code:
const char *the = "hallo!";
char *free;
strcpy (free,the);

Wenn ich den Button jedoch klicke stürzt das Program ab. Ich muss den String konvertieren, um ihn an eine andere Funktion zu übergeben...

Hier mal mit Eventreciver:
Code:
if(event.GUIEvent.EventType==EGET_BUTTON_CLICKED&&id==0)
           {
               const char *the = "hallo!";
               char *free;
               strcpy (free,the);
               //...
           }


Ich finde das etwas komisch, denn wenn ich das selbe direkt in die Funktion main() schreibe und nicht in den Eventreciver funktioniert die Konvertierung ohne Problem.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Eventreciver und strcpy
BeitragVerfasst: 02.03.2008, 12:13 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Ich bezweifel mal stark, dass der Code abschnitt überhaupt funktionieren kann.
Code:
char* free;


guck dir doch mal im debugger die adresse von dem pointer an... 0x00000000
Code:
strcpy (free,the);

also im klartext: kopier das zeug, was in 'the' steht an die speicher adresse 0x00000000...

Code:
char* free = new char[100];

und schwups es funktioniert ;)

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Eventreciver und strcpy
BeitragVerfasst: 02.03.2008, 14:12 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Zitat:
guck dir doch mal im debugger die adresse von dem pointer an... 0x00000000

Falsch :)
Die Adresse ist nicht definiert, d.h. normalerweise zufällig.

Ansonsten, falls free nur in dieser Funktion gebraucht wird, vllt besser als char free[100]; deklarieren.
Außerdem ist "strncpy(free, the, 100);" sicherer, damit nicht über den Speicher hinaus geschrieben wird.

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Eventreciver und strcpy
BeitragVerfasst: 02.03.2008, 19:16 
Offline
Benutzeravatar

Registriert: 26.04.2007, 00:12
Beiträge: 37
Vielen Dank für die schnelle Hilfe :D .

_________________
/-------------\ Fretboard
|-|---/----\---------------------------/-----\
|-|################## : : : |
|-|---\----/---------------------------\-----/
\-------------/ Charvel/Jackson


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Eventreciver und strcpy
BeitragVerfasst: 02.03.2008, 20:10 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
oder gleich mit stringc arbeiten. dann gibts auch keine probleme mit dem speicher.

_________________
yo. life's so bloody short.
Ihr dachtet Schulfernsehn sei die ultimative Folter? Falsch: Fahrstuhlmusik, extra leise.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Eventreciver und strcpy
BeitragVerfasst: 04.03.2008, 23:18 
Offline

Registriert: 09.05.2007, 23:24
Beiträge: 20
also eine variable "free" zu nennen ist in c/c++ aber auch leicht selbstmörderisch :)

irrlicht selbst bringt doch ne kleine string-klasse mit. ansonsten std::string


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de