Objekt-Array löschen
- 
					
					
					
					
 Hallo zusammen, hab da mal ne Frage. Hab mit delete[] probiert ein Objekt-Arry zu leeren, aber wenn ich einen neuen Datensatz in Array lade stürzt das Programm ab mit einem Adressfehler. Wie kann ich das Array lerren? 
 
- 
					
					
					
					
 mit delete[] leert man nicht, sondern gibt den speicher für das array frei. (wenn es mit new[] angelegt worden ist) 
 
- 
					
					
					
					
 Aso. Danke für die Nachhilfe. Habs jetzt mit ObjektArray.RemoveAll();gemacht. 
 Jetzt funzt es.
 Diese Funktion löscht aber nur die Pointer. Wenn ich jetzt einen neuen Datensatz in das Array lade, werden die vorhgerigen Einräge überschrieben?
 
- 
					
					
					
					
 Du solltest uns vielleicht mehr verraten. Von welchem Typ ist ObjectArray? Ist das was aus der MFC? 
 
- 
					
					
					
					
 Ja, sorry für die magere Beschreibung. Also das Array ist vom Typ CObArray und aus MFC. Dieses Array, nennen wir es m_Schnarrenberger, wird mit new initialisiert und gefüllt mit Daten. 
 Diese Daten kommen aus einem Textfile. Wenn ich die Daten nicht mehr brauche un Daten aus einem anderen Textfiel laden will, soll m_Schnarrenberger geleert werden.Wie gesagt ich habs mit delete[] gemacht und hatte immerzu einen Adressfehler. 
 Wenn ich es mit RemoveAll() mache, funzt es zwar, aber das Array ist dann doch nicht leer oder?
 
- 
					
					
					
					
 kann mir bitte bitte jemand helfen? 
 
- 
					
					
					
					
 Wenn ich es mit RemoveAll() mache, funzt es zwar, aber das Array ist dann doch nicht leer oder? Warum überprüfst du das denn nicht selber? 
 
- 
					
					
					
					
 Würd ich ja gern aber immer wenn ich auf irgendein Feld zugreif stürzt die Käsefabrik ab. 
 
- 
					
					
					
					
 Zeig am besten den *relevanten* Code sonst kommen wir hier nicht weiter. 
 
- 
					
					
					
					
 { TRACE("[Lösche] Gruppe: %s \n", m_GroupName); delete [] m_GroupName; int liCount = m_oaElements.GetSize(); if (liCount) { for (int i = 0; i < liCount; i++) { TRACE("[Lösche] Element: %s \n", m_oaElements[i]); delete m_oaElements[i]; } m_oaElements.RemoveAll(); } }Diese Methode sollte insgesamt 9x aufgerufen werden. 
 In jeder Gruppe sind verschiedene Anzahl Elemente, die hier gelöscht werden sollen.
 Aber sobald ich auf das erste Feld in m_oaElements zugreife stürzt alles ab.
 
- 
					
					
					
					
 mit RemoveAll() leerst du zwar dein Array, aber der Speicher,den du selbst dynamisch belegt hast wird dabei nicht freigegeben, ist also richtig das du das extra per Hand machen musst