Brauche Hilfe bei Memleak

  • Hi Spezialisten.


    Ich brauche mal wieder Hilfe. Habe einen C-Schnippsel im Netz gefunden und für mich angepasst um PNG Dateien auf dem Framebuffer auszugeben.
    Leider wird der Speicher im nachhinein nicht mehr freigegeben, so das nach einigen Grafiken der Speicher irgendwann mal mau wird :(


    Leider steige ich da mit meinen Kenntnissen nicht so ganz dahinter welche Variable separat geleert werden muss.
    Vielleicht kann mir da jemand mit mehr Ahnung nen Tipp geben.


    Hier der Code:
    [spoiler]

    /spoiler]


    Danke im vorraus

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

    Einmal editiert, zuletzt von vectra130 ()

  • Moin,


    du glaubst doch nicht etwa, dass sich jemand durch diesen beschissen formatierten Code quält?


    Generell muss jeder Speicher, der mit malloc und Konsorten angelegt wird, auch per free wieder explizit freigegeben werden. Wenn du externe Libs verwendest, musst du bei Verwendung der API entsprechend in der Doku der API nachlesen, ob du dich selbst um das Aufräumen des Speichers kümmern musst oder ob das die Lib für dich übernimmt. Bei z.B. "png_malloc" wäre das empfehlenswert ;)


    Ciao Louis

  • Der ganze code strotzt vor Fehlern..




    fp=fopen(inputFile, "r");
    if(!fp)
    {
    fclose(fp); // <-- Close a NULL pointer??
    (..)
    }

  • Und in keiner Abfrage, die mit "return 0;" endet, wird buf wieder freigegeben ....


    Gruß Andreas

  • Ok. Das sind doch schonmal Ansätze.
    Dann werde ich mal sehen was ich damit anfangen kann.


    Danke

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • louis
    Jetzt seh ich erst was du mit "beschissen formattierten Code" meinst.
    Tja. Auch Copy&Paste muss halt gelernt sein :D :D
    Ist mir garnicht aufgefallen.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • also erst mal formattieren z.B. in einem Code Editor und dann code Tag verwenden.


    louis
    Jetzt seh ich erst was du mit "beschissen formattierten Code" meinst.
    Tja. Auch Copy&Paste muss halt gelernt sein :D :D
    Ist mir garnicht aufgefallen.


  • Hatte tatsächlich nur die CODE tags vergessen.
    Hab es mal angepasst.

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Ich würde die Zeilen #28 - #33 erst einmal nach Zeile #118 verschieben, dann hast du mit den ganzen returns keine Probleme mehr.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!