Hi Leute,
ich habe ein Problem. ca 70% meiner free( void* ) Anweisungen schlagen fehl. selbst, wenn sie in der selben Funktion noch allokiert und am Ende wieder freigegeben werden.
Ich meine, ich habe nur immer recht wenig Speicher, den ich besetze, aber trotzdem will ich das Ganze sauber programmieren. Woran könne es liegen?
Ich verwende Visual C++ 2008 Student.
ich habe ein Problem. ca 70% meiner free( void* ) Anweisungen schlagen fehl. selbst, wenn sie in der selben Funktion noch allokiert und am Ende wieder freigegeben werden.
Code:
// Speicher für Outputarray und Zwischenspeicher reservieren
p_cOutput = (char*)malloc( sizeof(char)*iSize );
cTemp = (char*)malloc( sizeof(char)*80 );
p_cOutput[0] = 0;
// In den Reservierten Speicher die Elemente ausgeben.
agElement = agPointerToHead;
do
{
PrintEntry(agElement, cTemp, iSize);
sprintf_s(p_cOutput, iSize, "%s%s", p_cOutput, cTemp);
// Auf das nächste Element gehen, solange es nicht das letzte Element ist,
// welches auf sich selber Zeigt.
agElement = agElement->agNext;
} while (agElement != agElement->agNext);
// Und wieder freigeben
free( cTemp ); // Gibt immer WinHeap fehler
strcpy_s(p_cOutput, iSize, p_cOutput);
Ich meine, ich habe nur immer recht wenig Speicher, den ich besetze, aber trotzdem will ich das Ganze sauber programmieren. Woran könne es liegen?
Ich verwende Visual C++ 2008 Student.