Code: Alles auswählen
void MyClass::foo(double param1, double param2,...) // all params are int and doubles
{
vector<vector<Obj*>> objVectorStorage;
for(unsigned int i = 0; i < max1; i++) // max1 already given
{
vector<Obj*> objVector;
for(unsigned int j= 0; j < max2; j++) // max2 already given
{
Obj* myobject = new Obj();
myobject->setData(param1, param2, ...); // all params are int and doubles
objVector.push_back(myobject);
}
objVectorStorage.push_back(objVector);
}
//do some calculations here then copy all data in one vector like shown in the following
vector<Obj*> returnVecor;
for(unsigned int i = 0; i < objVectorStorage.size(); i++)
{
for(unsigned int j = 0; j < objVectorStorage[i].size(); j++)
{
Obj* tmpobj= objVectorStorage[i][j];
returnVecor.push_back(tmpobj);
}
}
return returnVecor;
}Mir ist zwar klar, dass der Obj pointer dann hier in der ersten doppelten for loop verloren geht, aber ich hab den pointer ja auch in den vector kopiert. Das sollte daher doch eigentlich kein leak sein oder? und es ändert auch nichts wenn ich am ende des inneren for myobject = NULL; setzte. VIelleich kann mir hier wer weiterhelfen wo dass Problem liegt.
Danke & lg scr