char array löschen mit delete []
-
Hallo,
ich erzeuge mit new char ein Char-Array, benutze es und anschließend will ich es löschen. Im IDE gibt es eine Exception Fehlermeldung; in der fertigen EXE Datei nicht?
Integer iLen; AnsiString zText; iLen=RTF->GetTextLen(); // Anzahl Zeichen char *bytes=new char[iLen]+1; // Char Feld erzeugen (+1 Nullbyte) RTF->GetTextBuf(bytes,iLen); // und auslesen zText=String(bytes); // Char in String übergeben delete[] bytes; // hier kommt im IDE eine Fehlermeldung? Oder ist bytes=NULL; ausreichend?
Danke für jeden Hinweis. Laut Microsoft bzw. googeln müsste es mit delete [] bytes eigentlich gehen (was es in der fertigen EXE ja auch scheinbar macht).
Gruß Stefan
-
Probier mal so:
char *bytes=new char[iLen+1];
-
Wenn du ´nen
std::vector
benutzt hast du gar keine Probleme mehr:std::vector<char> Buffer( RTF->GetTextLen() +1, 0 ); RTF->GetTextBuf( &Buffer[0], RTF->GetTextLen() ); AnsiString zText = &Buffer[0];
-
Hallo _matze und DocShoe,
danke für beide Hinweise
, der dämliche Fehler mit
[iLen]+1
war es. Ich war so irritiert, weil
der Fehler nur im IDE war, das ich es einfach nicht gesehen habe.Gruß Stefan
-
Stefan71242 schrieb:
char *bytes=new char[iLen]+1; // Char Feld erzeugen (+1 Nullbyte)
Das ist wirklich ein sehr hübscher Fehler