Garbage Collector
-
Ich kann dazu nur soviel sagen: Linux gibt den Speicher frei.
-
Meiner Meinung nach tut das Windows auch sobald der zugehörige Prozess endet.
-
Danke! Genau das wollte ich wissen und hören
Habt nich nen schönen Tag zusammen!
-
Original erstellt von hackbert:
Meiner Meinung nach tut das Windows auch sobald der zugehörige Prozess endet.Irrtum! Windows NT tut das nicht. workstations, die rund um die Uhr an sind (interessanterweise auch wenn man sich abmeldet) haben auf Dauer echte Probleme damit. Win95 ist afaik auch so.
Aber das tut auch eigentlich nix zur Sache. Der bessere Stil ist, seinen Müll auch wieder wegzuräumen.cYa
DjR
-
So siehst Du, was passiert - WINDOWS:
Taskmanager an, Registerkarte "Systemleistung"
void main(void) { malloc(20000000); getchar(); }
Bei Win2000 wird der Speicher jedenfalls wieder freigegeben.
-
Übernimmt das Betriebssystem für mich das Aufräumen und freischaufeln von nicht mehr benötigtem Speicher, NACH Beendigung meines Programms?
ich würde sagen, dass die meisten Multitasking Prozesse das tun sollten
char* muell = (char*) malloc(256 * sizeof(char));
-sizeof(char) ist immer == 1, also überflüssig
-den Rückgabewert von malloc soll man nicht castenvoid main(void)
void main ist illegal!
-
void main() in C verboten?!?
-
RTFF :p int main() oder void main()?
-
Illegal nicht, dann ginge's nicht, Es verstößt lediglich gegen die ANSI-Norm.
Das Betriebssystem erwartet von jedem Programm, dass es eine Meldung über Erfolg/Misserfolg des Ablaufs zurückliefert.
Benutzt man void main(), so wird standardmäßig 0 genommen. Dies geht zwar, ist aber äußerst unschön.
Axo - W2k räumt auf, das weiß ich, NT (4.0) tut's afaik nicht, oder zumindest nicht sauber.
cYa
DjR
-
Hallo Erde!
Warum werde ich ignoriert?!