sizeof reserviert falsch



  • Hallo. Das ist wahrscheinlich ne einfache Frage aber ich habe trotzdem keine lösung dafür. Ich lern erst c++ un fang gerade mit dateizugriffen an. ich hab ein problem mit FileWrite bzw. sizeof weil irgendwie immer nur 4 byte reserviert und geschrieben werden in meinem programm:

    int size, filehandle;

    size = Edit1->GetTextLen(); //länge des textes ermitteln
    size++;
    char *buffer = new char[size]; //variablen Buffer erzeugen
    Edit1->GetTextBuf(buffer, size); //In den Buffer inhalt von Edit1 schreiben
    filehandle = FileCreate("c:\\test.txt"); //Datei erzeugen
    FileWrite(filehandle, buffer, sizeof(buffer)); // schreiben des buffers in die datei
    FileClose(filehandle); //Datei schliessen
    delete [] buffer;

    wenn in dem Beispiel Edit1->Text z.B. "komisch" ist steht später in der datei nur "komi" un wenn ich im debuger nachschau liefert sizeof auch nur 4 byte als reservierung zurück. ich kann mir nicht erklären woran das liegt. sorry falls die frage schonmal wo beantwortet wurde. Mfg un danke für eure Hilfe.



  • sizeof(zeiger) liefert halt die Größe des Zeigertyps ... was auch sonst?
    warum benutzt du nicht size als Größenangabe?



  • hm ok des wars dann schon 😉 danke für deine hilfe funzt. ich hab mich da wohl irgendwie durch die hilfe(bsp. zu FileWrite)verwirren lassen...



  • ich kenn ja die Hilfe zu FileWriter nicht, aber vielleicht haben sie da Arrays verwendet:

    char array[10];
    // sizeof(array) => 10
    

Anmelden zum Antworten