Speicherprobleme mit Arrays?



  • Hallo,

    ich habe vermutlich eine Anfängerfrage.

    Ich habe ein Programm geschrieben mit sehr vielen Arrays (ein- und zweidimensionale), das Probleminstanzen in Textdateien verarbeiten soll (auslesen und auswerten).
    Das Programm funktioniert für kleinere Probleminstanzen tadellos und durchläuft auch alle Dateien meines Unterverzeichnisses.
    Bei größeren Instanzen gibt mir das Programm jedes Mal bei der zweiten oder dritten durchlaufenen Datei eine Fehlermeldung, daß das zu berechnende Volumen eine Höchstgrenze überschritten hätte. Dem ist allerdings nicht so, was ich per Hand nachgerechnet habe.
    Starte ich das Programm mit der vermeintlich fehlerhaften Instanz neu, durchläuft es sie problemlos und zeigt die Fehlermeldung bei der nächsten oder übernächsten Instanz.
    Ich habe mir nun gedacht, daß dies etwas mit der Speicherfreigabe zu tun haben muß, komme aber nicht weiter 😞

    Gruß,
    Francis



  • Speicherlecks klingen hier logisch. Probier mal ein tool wie z.B. valgrind. Wenn du so ein tool nicht hast und nicht installieren willst, zähl die Aufrufe von malloc() und free() mal mit. Da kannst du einfach alle Aufrufe von malloc() bzw. free() durch z.B. free_wrap() und malloc_wrap() ersetzen, die einfach ihre Parameter an free() bzw. malloc() weiterreichen, aber zudem noch einen globalen Zähler inkrementieren.



  • vielen Dank, es funzt !!!! 🙂 (Die zweite Alternative)

    Habe eben fasziniert vor den Durchläufen gesessen. Das rettet meine Diplomarbeit 😃


Log in to reply