char array - malloc problem
-
also ich brauch ein Char-array das so aussieht "inhalt[10000][256]" ok alles klar ist zu groß proggy crashed. Also mit malloc speicher reservieren, hier mein code
void unterprogramm(void){ char *inhalt[10000]; int i; for(i=0; i < 10000; i++){ inhalt[i] = malloc(256); } ----- jetzt einige Anweisungen und Inhalt ist verarbeitet und wird net mehr gebraucht ------ free(inhalt); }
Hmm das ganze ist ein Unterprogramm und wird zig-mal aufgerufen, aber im Windows XP Taskmanager seh ich wie der Speicher den mein Proggy belegt ins unermessliche und kontinuierlich steigt, was mach ich falsch, wie mach ich's richtig?
-
Sorry falsches Forum, bitte ins ANSI-C verschieben, danke.
-
Dieser Thread wurde von Moderator/in Jochen Kalmbach aus dem Forum WinAPI in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Du musst für jedes inhalt[i] den Speicher mit free() freigeben. Aber ehrlich gesagt wundert mich, dass free(inhalt) nicht crasht.
-
statt des einzelnen 'free':
for(i=0; i < 10000; i++) free(inhalt[i]);
-
Yep, Kollegen das war auch mein Ansatz aber dann crasht das Proggy bei mir.
-
Dann machst du irgendwelchen Mist in deinem "----- jetzt einige Anweisungen und Inhalt ist verarbeitet und wird net mehr gebraucht ------" Teil.
-
Dann hast du wohl einen Bug in dem Teil des Codes den du nicht gepostet hast.
edit: feigling
-
Yep Kollegen da hattet ihr 100% Recht, da hab ich doch tatsächlicht irgendwelche String-Address Manipulationen vorgenommen die mir am Ende das free weg geschossen haben. Jetzt läufts, danke für den Hinweiss.