C - Vérifier la quantité de mémoire ram disponible?

Je sais comment les utiliser malloc() et free() d'allouer de la mémoire, mais est-il aussi une fonction C standard pour vérifier la quantité de mémoire est à gauche, donc je ne peux appeler que périodiquement pour vous assurer que mon code n'a pas de fuites de mémoire?

La seule chose que je peux penser à est de l'appel de malloc(1) dans une boucle infinie jusqu'à ce qu'il retourne une erreur, mais qui ne devrait pas y avoir un moyen plus efficace?

Pourquoi ne pas simplement utiliser valgrind sur votre programme afin de vérifier les fuites?
noter que l'appel de malloc dans une boucle sans fin est susceptible de ne jamais échouer, car la plupart des systèmes d'allouer de la mémoire sur le premier contact.
Connexes : stackoverflow.com/questions/2513505/...
chaque malloc appel réserve une partie de l'espace d'adressage virtuel, donc il finira par retourner une erreur.
Vrai, en fait malloc également des besoins (physiques) de mémoire pour garder une trace de l'blocs (même si vous déposez les pointeurs). Vous ne pouvez donc pas de malloc pour toujours. Cependant, cela n'aide pas à tout savoir de combien de mémoire est à gauche.

OriginalL'auteur Muis | 2013-01-17