[C] free lößt Windows Breakpoint aus

kodak

Mitglied
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.

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.
 
Aso, ganz vergessen,
in PrintEntry wird auch über einen sprintf cTemp gefüllt. An dem Pointer ansich wird aber nichts geändert.
 
Nja hast wahrscheinlich nen Buffer Overflow drin, der sich dadurch bemerkbar macht ... von d.h. wäre die FUnktion vllt. von Interesse.
 
Zurück