Zu Vectoren mehr Infos speichern

Ich kanns zwar immer noch nicht erklären, jedoch war alles in Ordnung
nur das M$ Produkte hatte wohl irgendwas quer sitzen^^
Neues Projekt gestartet -> Es läuft alles ohne Probs...

Nur hab ich jetzt ein Speicher Problem...

Das ist die Funktion die den Speicher holt:
Code:
U_Data::addObject(const string& quest, const string& cat, const string& sub)
{
		katalog.push_back(new U_Object(quest, cat, sub));

}

Jetzt die Frage wie sol die Funktion aussehen die den Speicher wieder freigibt
Hab mal diesen Versuch gestartet:

Code:
U_Data::deleteObject()
{

	int i = katalog.size() - 1;
	if(i > 0)
	{
		for(i - 1; i >= 0 ; i--)
		{
			delete katalog.at(i);
		}
	}

}

Und diese Funktion dann im Destrucor aufrufen:

Code:
U_Data::~U_Data(void)
{
	deleteObject();
}

Jedoch bekomm ich immer size 0 und das ganze nicht und gibt mir Fehlermeldung dass ein Speicherleck erkannt wurde...
kann mir jemand helfen?
Danke und grüsse ;)
 
Versuch's mal so:
Code:
if(i >= 0) // eigenlich überflüssig, da schon in for geprüft wird
{
  for( ; i >= 0 ; i--) // erster Ausdruck hatte keine Funktion

@colblake: Ich nehme an, dass es sich um die entsprechenden Methoden von std::vector handelt.
 
Hallöchen ;)

@colblake
Also die size() und die at() Funktionen sind die standard Funktionen der std::vector Klasse, wie schon Kachelator sagte...

Die size)( Funktion gibt mir als int die Anzahl der Elemente zurück und die at() Funktion ist ein geregelter Zugriff auf die Indexe des vectors,
welche bei falschem Zugriff ein exeception wirft und nicht gleich abschmiert ;)

@Kachelator
Ja ich weiß, ich neige wenn was nicht läuft dazu unsinnig Sicher zu gehen um Fehler auszuschließen ;)
Das Problem ist nur dass wenn ich beim Destruktor ankomme der schon anscheinend die U_Data Objekte schon gelöscht hat...
Also die Objekte welche die Einträge im Vector darstellen, da ich immer als Size 0 zurück bekomme und
der Compiler meckert dass ich den Speicher nicht freigegeben habe...
Wie ist nochmal die Reihenfolge der Zerstörung der Objekte?
Ich dachte immer die Erstellungsreihenfolge?
Wenn nicht muss ich mir was anderes überlegen...
Grüsse
 
Zurück