# Frage zu delete (Char Array)



## DaFunk2k (4. August 2006)

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


----------



## yan1 (4. August 2006)

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


----------



## DaFunk2k (4. August 2006)

free gehört doch zu malloc

ich benutze aber new und deshalb delete


----------



## yan1 (4. August 2006)

OK :-D
Das beweist wieder mal welch schlechter C Programmier ich bin ;-)


----------



## GABehnke (4. August 2006)

Da wirst Du wohl nicht umhinkommen durch dein Array zu iterieren und jeden Eintrag zu löschen.

```
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


----------



## DaFunk2k (4. August 2006)

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.


----------

