Hallo zusammen,
ich bekomme in einem Programm von mir, das mit Visual C++ 6.0 kompiliert ist, beim delete-Aufruf eines Pointers immer die Debug-Fehlermeldung (Debug-Assertion schlägt fehl), dass es sich bei dem Zeiger nicht um einen Heappointer handelt. Ich denke aber schon, dass es einer ist. Damit ihr die Situation beurteilen könnt, hier mal der Code:
void Function1(CString\* &pcsTexts, int nNumber){
//Anlegen eines Heappointers
CString\* pcsList = new CString[nNumber];
//Rückgabe des angelegten Speichers an die Außenwelt
pcsTexts = pcsList;
//Daten in die einzelnen Arrayfelder schreiben...
}
//Hauptprogrammteil
//Anlegen eines Pointers
CString\* pcsTexts = NULL;
int nNumber = 4;
//Übergabe an Function1 (siehe Funktionsdefinition oben)
Function1(pcsTexts, nNumber);
//Nach Verarbeitung
delete pcsTexts //hier schlägt die Debug-Assertion fehl
Verstehe ich irgendwas nicht richtig? Ist pcsTexts am Ende nun ein Stackpointer oder Heappointer, muss ich ihn löschen oder nicht?
MfG
MacFrenzy