Det kommer an på dit Operativ System. Windows releaser, så vidt jeg husker, selv alle resourcer som dit program har allokeret - men derfor bør du nu rydde op alligevel :-)
/* Der er jo ikke sikkert at alle operativ systemer overholder malloc's krav til operativ systemet.
fx. følgende kode er ikke garanteret at virke på en kendt operativ system, selvom den første malloc fungere. */ // indsæt her et passende antal include.
Det er en "dum" malloc. En fejl i C RTL. Men hvis memory allokeret af et program ikke bliver releaset ved program exit, så er det en operativ-systems fejl.
Iøvrigt af nysgerrighed: hvilket OS har problemer med at genbruge memory i malloc ?
Bare en sidebemærkning. Har en underlig erfaring med linux - når man i et loop allokerer og frigør en masse hukommelse, så ser det ud som om hukommelsen stadig er "besat" efter sidste gennemløb af løkken - men der er ingen memory leaks, da f.eks. 100000 gennemløb giver samme memory forbrug som 1 gennemløb, og der er ingen statiske variable eller funktioner.
Stringbuffer's ogArne's ovenstående beskrivelse er den korrekte måde at virke på for en C implementation.
Den skal kræver at du kan genallockere frigivet hukommelse, hvilket der ikke var (er der det nu?) i windows, hvor frigivet hukommelse bliv stillet til rådighed for andre programmer før program terminering hvilket gjorde at den anden allockering kunne fejle fordi virtuel hukommelse i mellemtiden var opbrugt.
sig til hvis der er nogen der føler sig uretfærdigt behandlet, så opretter jeg et spørgsmål til vedkommende :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.