C - Überprüfen Sie den verfügbaren ram?

Ich weiß, wie Sie malloc() und free() Speicher zuweisen, aber gibt es auch eine standard-C-Funktion, um zu überprüfen, wie viel Speicher übrig ist, so kann ich rufen, die in regelmäßigen Abständen, um sicherzustellen, dass mein code hat keine Speicherverluste?

Das einzige, was ich denken kann, ist das aufrufen malloc(1) in einer endlos-Schleife, bis es wieder ein Fehler, aber sollte es nicht eine effizientere Möglichkeit?

Warum nicht einfach valgrind auf, Ihr Programm auf Dichtheit prüfen?
beachten Sie, dass das aufrufen von malloc in einer Endlosschleife und wird wahrscheinlich nie scheitern, da die meisten Systeme nur Speicher auf touch.
Verwandte : stackoverflow.com/questions/2513505/...
jeder malloc rufen Sie behält sich einen Teil des virtuellen Adressraums, so wird es irgendwann wieder einen Fehler.
Wahr, in der Tat malloc muss auch die (physischen) Speicher zu halten Spur von den zugewiesenen Blöcken (auch wenn Sie die drop-Zeiger). So kann man nicht malloc für immer. Dies jedoch überhaupt nicht helfen, zu wissen, wie viel Speicher übrig ist.

InformationsquelleAutor Muis | 2013-01-17

Schreibe einen Kommentar