malloc/realloc liefern NULL



  • Hallo alle!

    Ich habe mehrere Instanzen meines Programms laufen. Hin und wieder bekommt eines der Programme den Fehler, dass malloc oder realloc als Returnwert Null bekommen.
    Ok...schaut so aus, als ob mir der Ram ausgeht.
    Wenn ich über den Taskmanager reinschau sind aber von den 2GB noch ~400 frei (vom Physikalischen Speicher).
    Die anderen Instanzen laufen auch ohne Probleme und können weiterhin noch Speicher allokieren.
    Die mallocs und reallocs werden alle nur mit größen < 1MB aufgerufen.

    Hat irgendwer eine Idee was das sein könnte?



  • poschi schrieb:

    Wenn ich über den Taskmanager reinschau sind aber von den 2GB noch ~400 frei (vom Physikalischen Speicher).

    400 bytes sind nicht besonders viel für pc-programme. da kann's schon eng werden...
    ..und die werte die taskman anzeigt, kannste eh' knicken.

    wahrscheinlich haste ein paar 'free'-aufrufe vergessen.
    🙂



  • ten schrieb:

    poschi schrieb:

    Wenn ich über den Taskmanager reinschau sind aber von den 2GB noch ~400 frei (vom Physikalischen Speicher).

    400 bytes sind nicht besonders viel für pc-programme. da kann's schon eng werden...

    Ich glaube er meinte 400MB 😉



  • Ja, hab eigentlich schon 400 MB gemeint!. Ich hab etwas gefunden, was schuld sein könnte. Ein Oracle Prozess hat mehr als 35.000 Handles gebraucht, aber nur 40MB Ram. Kann es sein, dass Windows die Handles ausgehen und ich deshalb keinen Speicher mehr bekomm?



  • ja. windows hebt die hufe bei durchschnittlich 20k-30k prozessen. der einzige grund warum ich meine winxp box neustarten muss. manche handles scheinen niemals wieder befreit zu werden.


Anmelden zum Antworten