Heap Problem



  • Hallo Leute,

    ich habe ein kleines Heapproblem:

    Es gibt eine Struktur, welche einen Pointer auf eine Struktur enthält. Da ich über eine Ini-Datei einlese wieviele Datensätze dieser Struktur es gibt initalisiere ich den Pointer auf stDatenInformationen mit NULL. Danach lege ich mit new z.B. 100 Datensätze an. Im nächsten Schritt (zum Testen) lösche ich die dann wieder. Dann bekomme ich den Fehler:

    Invalid Address specified to RtlValidateHeap( 00340000, 00EAABD4 )

    00EAABD4 ist übrigens der Pointer der gelöscht werden soll

    struct stDatenInformation
    {
    	DataTypes en_DataType;
    	UNS4 u4Offset;
    	UNS2 u2Kommastellen;
    	CString sData;
    	CString sParaName;
    	UNS2 u2StringLength;
    };
    
    struct stParameter
    {
    	CString sGruppenName;
    	stDatenInformation* stData;
    	UNS4 u4Number;
    };
    
    stPara[e_PG].stData = new stDatenInformation[stPara[e_PG].u4Number];
    delete stPara[e_PG].stData;
    


  • Bei new[] immer delete[] verwenden!

    P.S. CString? Falsches Forum -> MFC



  • Hey danke,

    das funktioniert.

    Denk Dir das C einfach weg. Das ist hier doch nicht relevant.



  • Wirf deine manuelle Speicherverwaltung raus und benutze std::vector .


Anmelden zum Antworten