malloc/free .. führt zu Absturz

Sebastian L

Grünschnabel
Hey,

dieses kleine Programm fliegt mir immer um die Ohren:


char * buffer1;
char * buffer2;

[...]

buffer1 = (char*) malloc (strlen(message));
buffer2 = (char*) malloc (strlen(message));

strcpy(buffer1,message);

[...diverses reinkopiert in buffer2...]

buffer2[y]='\0';

[...]

delete(buffer1);
delete(buffer2);



wenn ich die deletes einfach weglasse dann klappte .. woran liegts
Gruss
S.
 
Hallo!

Hast du das mal mit free statt delete probiert?

Meines Wissens verwendet man unter

C: malloc und free
C++: new und delete

Gruß Frank
 
Dein malloc solltest Du am Besten auch mal so schreiben:

buffer1 = (char*) malloc (strlen(message)+1);

Sonst dürfte das \0 keinen Platz mehr im Speicher haben.

PS: Ich schreib generell immer die sizeof-Abfrage mit ins malloc, da char eh der einzige Typ mit 1Byte-Größe ist.
 
Original geschrieben von Frankdfe
Hallo!

Hast du das mal mit free statt delete probiert?

Meines Wissens verwendet man unter

C: malloc und free
C++: new und delete

Gruß Frank

oh mein Gott .. ich kannte den Unterschied, ich habs nur verwechselt :(

Danke auch fuer den Tip mit +1 .. hast natuerlich recht !

Gruss
S.
 
Zurück