tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1871
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Sebastian L Sebastian L ist offline Mitglied
    Registriert seit
    Oct 2003
    Beiträge
    10
    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.
     

  2. #2
    Frankdfe Frankdfe ist offline Mitglied Gold
    Registriert seit
    Apr 2003
    Beiträge
    151
    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
     
    Der Glückliche phantasiert nie. (Sigmund Freud)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)
    Daraus folgt: Die Genie's sind nicht glücklich.

  3. #3
    Thomas Kuse Thomas Kuse ist offline Mitglied Rubin
    Registriert seit
    Aug 2001
    Beiträge
    1.411
    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.
     

  4. #4
    Sebastian L Sebastian L ist offline Mitglied
    Registriert seit
    Oct 2003
    Beiträge
    10
    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.
     

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 08.11.10, 22:52
  2. ServiceBase.Run führt unter Win2000 zum Absturz
    Von Schnielz im Forum .NET Application und Service Design
    Antworten: 0
    Letzter Beitrag: 28.08.07, 11:06
  3. [c++] resize() führt zum Absturz
    Von paramit100 im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 27.05.07, 13:40
  4. free nach malloc
    Von MPNuts im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 22.11.04, 17:44
  5. Antworten: 6
    Letzter Beitrag: 15.06.04, 15:08