mallocierten Speicher mit free freigeben - ein Muss?



  • Bashar schrieb:

    Der Standard kann darüber auch keine Aussage machen, weil es nicht in sein Gebiet fällt. Dazu müsstest du schon Posix oder dergleichen heranziehen.

    Huh, da bist Du vielleicht ein wenig zu pauschal. Eigentlich sollte jedes malloc() sein korrespondierendes free() erhalten, um die Source- Kompatibilität auf möglichst vielen Plattformen zu behalten.
    Der frühere Sonderfall, daß mit der Applikation auch der Speicherkontext abgerissen wird, ist zwar heute Alltag, aber noch nicht allzu alt, zumindest auf Mainstream- Systemen. Ich habe erläutert, warum ich bei meinen Systemen häufiger darauf verzichte, aber am PC dann doch den Speicher geregelt abbaue. Ist zwar noch nie passiert, daß ich außer den bewußten Memory Leaks welche eingebastelt hätte, aber anders kann ich's ja kaum rauskriegen. Wenn schon Debuggen, dann richtig 😉 .



  • pointercrash() schrieb:

    Bashar schrieb:

    Der Standard kann darüber auch keine Aussage machen, weil es nicht in sein Gebiet fällt. Dazu müsstest du schon Posix oder dergleichen heranziehen.

    Huh, da bist Du vielleicht ein wenig zu pauschal. Eigentlich sollte jedes malloc() sein korrespondierendes free() erhalten, um die Source- Kompatibilität auf möglichst vielen Plattformen zu behalten.

    Was willst du mir damit mitteilen? 😕 Ich habe etwas über den Standard gesagt, nicht über "eigentlich" oder "möglichst".



  • Bashar schrieb:

    Was willst du mir damit mitteilen? 😕 Ich habe etwas über den Standard gesagt, nicht über "eigentlich" oder "möglichst".

    Ganz klar - der Standard ist Trash, Müll, unbeachteter Käse. C99? Wer hat den Unsinn überhaupt voll implementiert - und wer braucht den eigentlich?
    Zu einer ganz praxisorientierten Frage gibt es keine Guideline? Hurrah, Frag' Posix als Antwort?
    Danke, das ist unbefriedigend, Du bist nicht der Standard, aber wenn der Standard dazu nicht mehr zu sagen weiß, ist er wohl unvollständig.



  • Natürlich ist er unvollständig. Da steht drin wie sich eine konforme C-Implementation zu verhalten hat, nicht wie man sich die Schuhe zubindet.



  • Bashar schrieb:

    Natürlich ist er unvollständig. Da steht drin wie sich eine konforme C-Implementation zu verhalten hat, nicht wie man sich die Schuhe zubindet.

    Das ist die grundsätzliche Crux an der Sache - niemand macht sich wirklich Gedanken, wie man sich die Schuhe am Besten zubindet, bevor man "Schnürsenkel" definiert. Und "Klettverschluß" muß man sich sowieso schon selbst schreiben.



  • es ist gut und schlecht zugleich, dass der C standard so vieles auslässt. gut, weil C deshalb auf möglichst vielen plattformen, mit 'nem minimum an kompromissen, implementiert werden kann. schlecht, weil nur auf weniges verlass ist. so wie es ist, scheint es aber ein ganz brauchbarer mittelweg zu sein.
    🙂


Anmelden zum Antworten