Je suis étudiant en génie informatique, et j'ai un peu l'électronique des cours. J'ai entendu, à partir de deux de mes professeurs (de ces cours) qu'il est possible d'éviter d'utiliser l' free()
de la fonction (après malloc()
, calloc()
, etc.) parce que les espaces de mémoire allouée ne sera probablement pas être utilisé à nouveau pour allouer de la mémoire d'autres. C'est, par exemple, si vous allouer 4 octets, puis à les relâcher, vous aurez 4 octets de l'espace qui ne sera probablement pas être attribué de nouveau: vous disposez d'un trou.
Je pense que c'est de la folie: vous ne pouvez pas avoir un non-jouet-programme où vous allouer de la mémoire sur le tas, sans le relâcher. Mais je n'ai pas les connaissances pour expliquer exactement pourquoi il est si important que, pour chaque malloc()
il doit y avoir un free()
.
Donc: il y a toujours des circonstances dans lesquelles il peut être approprié d'utiliser un malloc()
sans l'aide d' free()
? Et si non, comment puis-je expliquer cela à mes professeurs?