Frage zu delete (Char Array)

DaFunk2k

Mitglied
Hallo zusammen,

ich habe eine Liste von Strings (Char **liste).
Mit liste=new char*[100] reserviere ich den Speicherberich für die Anzahl der Strings (Reihen) und jeweils mit liste[i]=new char[xx] reserviere ich dann den jeweiligen Speicherberich für die Strings.

Jetzt habe ich eine Frage zum freigeben des Speichers. Wenn ich die einzelnen Strings freigeben möchte dachte ich geht das mit delete[] liste[i]. Allerdings gibt mein Debugger dann immer einen Fehler aus, den ich allerdings ignorieren kann. Aus diesem Grunde wollte ich mal fragen, ob ich da einen Denkfehler habe. Arbeite übrigens mit Visual Studio .NET 2002.

Schönen Gruß
Andreas
 
Ich bin nicht so der C/C++ Kenner, aber Grundsätzlich gibt man Speicher mit free() frei oder?

wenn man zB den fünften String in einem String Array löschen will:

char **stringArray;

free(stringArray[5]);
stringArray[5] = NULL;

So würds ich halt machen ;)
 
Da wirst Du wohl nicht umhinkommen durch dein Array zu iterieren und jeden Eintrag zu löschen.
Code:
for (i=0;x<Anzahl;x++)
delete liste[i];
und zum Abschluß natürlich
delete [] liste;
Nur am Rande, warum verwendest Du keine Standardcontainer und std::strings ?

Gruß
Gerhard
 
Das Programm muss später auf einem embedded System laufen und da sind strings leider nicht bekannt :(

Dann werd ich es mal so ausprobieren, vielen Dank.
 

Neue Beiträge

Zurück