In C89 zu programmieren...



  • [quote="Steffo"]

    Z schrieb:

    Stell dir vor, du macht am Anfang des Funktionsrumpfes ein malloc() und am Ende ein free(). Nach dem malloc() kommen jedoch verschiedene switch cases und eins davon macht ein return... Glückwunsch: Du hast ein Memory Leak.
    Ich weiß... so etwas passiert DIR natürlich nicht...

    Selbst wenn: dank der heutigen Verfügbarkeit toller Tools wie Valgrind kann man sowas glücklicherweise meist verdammt schnell erkennen. Wer irgendwelchen Code raushaut, ohne zumindest vorher mal mit Valgrind drübergegangen zu sein, hat es auch nicht anders verdient. 😉

    Übrigens finde ich durchaus, dass VLAs eine Berechtigung haben. Was sie aber definitiv nicht tun, ist einen davon zu befreien, sich Gedanken um den verwendeten Speicher zu machen.



  • Horst Hansen schrieb:

    Selbst wenn: dank der heutigen Verfügbarkeit toller Tools wie Valgrind kann man sowas glücklicherweise meist verdammt schnell erkennen. Wer irgendwelchen Code raushaut, ohne zumindest vorher mal mit Valgrind drübergegangen zu sein, hat es auch nicht anders verdient. 😉

    Übrigens finde ich durchaus, dass VLAs eine Berechtigung haben. Was sie aber definitiv nicht tun, ist einen davon zu befreien, sich Gedanken um den verwendeten Speicher zu machen.

    Was, wenn der Memory Leak nur in bestimmten Konstellationen auftaucht? Valgrind alleine hilft dir da nicht weiter. Du müsstest dein Programm sinnvoll mit Parameter füttern, um möglichst viele Konstellationen zu testen.



  • Steffo schrieb:

    Was, wenn der Memory Leak nur in bestimmten Konstellationen auftaucht? Valgrind alleine hilft dir da nicht weiter. Du müsstest dein Programm sinnvoll mit Parameter füttern, um möglichst viele Konstellationen zu testen.

    Na hier spricht ja der Profi, leider sehr schwammig und vage. Natuerlich haben sich auch andere Gedanken gemacht, du bist nicht der erste. Tools fuer Code Coverage und Testgenerierung existieren auch.



  • C ist alt...



  • nachtfeuer schrieb:

    C ist alt...

    ROFL 😃

    Was ein Argument! 🙄



  • nachtfeuer schrieb:

    C ist alt...

    Die aktuellste Version von C ist gerade mal ein paar Wochen alt: http://gcc.gnu.org/gcc-4.7/



  • Es gibt einen Unterschied zwischen einem C-Compiler und dem C-Standard (dessen letzte Revision im Oktober 2011 verabschiedet wurde). Allerdings ist das eine etwas seltsame Art, das Alter zu messen - wenn du gestern Geburtstag hattest, bist du ja auch nicht unbedingt erst einen Tag alt.



  • seldon schrieb:

    Es gibt einen Unterschied zwischen einem C-Compiler und dem C-Standard (dessen letzte Revision im Oktober 2011 verabschiedet wurde). Allerdings ist das eine etwas seltsame Art, das Alter zu messen - wenn du gestern Geburtstag hattest, bist du ja auch nicht unbedingt erst einen Tag alt.

    Macht aber schon irgendwie Sinn, schließlich wird C ja weiterentwickelt, d. h. man hat mehr Möglichkeiten, mehr Macht. Wenn du das jetzt auf den Menschen überträgst, kommt nicht unbedingt dasselbe raus...



  • Eigentlich dachte ich die Ironie wäre nicht zu übersehen...



  • Tim schrieb:

    nachtfeuer schrieb:

    C ist alt...

    Die aktuellste Version von C ist gerade mal ein paar Wochen alt: http://gcc.gnu.org/gcc-4.7/

    ach, gcc...( 😉 )

    http://www.phrack.com/issues.html?issue=67&id=11#article
    http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php

    aber...
    Fortran ist alt...



  • nachtfeuer schrieb:

    C ist alt...

    Lisp ist auch alt, aber alle kopieren dieses und jenes aus der Sprache. Darueber hinaus ist Alter ein sehr schwaches Kriterium.



  • knivil schrieb:

    nachtfeuer schrieb:

    C ist alt...

    Lisp ist auch alt, aber alle kopieren dieses und jenes aus der Sprache. Darueber hinaus ist Alter ein sehr schwaches Kriterium.

    In diesem Zusammenhang würde ich sagen, C ist zu jung, noch viel zu grün hinter den Ohren.
    ( http://archive.vector.org.uk/art10500180)

    Aber
    http://www.henning-thielemann.de/CHater.html 😉


Anmelden zum Antworten