Maîtriser la fonction free() en C : Guide pratique et exemple
Qu'est-ce que la fonction free() en C ?
La fonction free(), partie de la bibliothèque standard C, libère la mémoire précédemment allouée avec malloc(), calloc() ou realloc(). En retournant le bloc au tas (heap), elle maintient l'empreinte mémoire de votre programme sous contrôle et prévient l'épuisement de la mémoire disponible.
Contrairement aux variables de pile, la mémoire allouée dynamiquement doit être libérée explicitement. Ne pas appeler free() peut entraîner des fuites mémoire et éventuellement causer une erreur out-of-memory.
Syntaxe
void free(void *ptr);
Ici, ptr est un pointeur vers le bloc de mémoire à désallouer. Passer un pointeur NULL est sûr et ne fait rien.
Exemple pratique
#include <stdio.h>
#include <stdlib.h>
int main(void) {
// Alloue de l'espace pour 10 entiers
int *ptr = malloc(10 * sizeof(*ptr));
if (ptr == NULL) {
fprintf(stderr, "Memory allocation failed\n");
return 1;
}
// Stocke une valeur et l'affiche
ptr[2] = 50;
printf("Value of the 3rd integer is %d\n", ptr[2]);
// Libère la mémoire quand c'est fait
free(ptr);
return 0;
}
Sortie :
Value of the 3rd integer is 50
Bonnes pratiques
- Vérifiez toujours la valeur de retour de
malloc()(ou fonctions apparentées) avant d'utiliser le pointeur. - Mettez le pointeur à
NULLaprès avoir appeléfree()pour éviter les doubles libérations accidentelles. - Ne libérez pas de mémoire qui n'a pas été allouée dynamiquement.
- Utilisez
free()le plus tôt possible après avoir fini avec la mémoire pour garder le tas léger.
Langue C
- Utilisation des fonctions impures en VHDL : Améliorer la lisibilité et la maintenabilité des FSM
- Maîtriser les fonctions VHDL : Guide pratique pour un design efficace
- Maîtriser std::map en C++ : Guide complet avec exemples de code
- calloc() en C : Allocation mémoire initialisée à zéro et exemple pratique
- Utilisation de realloc() en C : Syntaxe, bonnes pratiques et exemple
- Méthode Java String length() : Comment obtenir la taille d'une chaîne (Exemple)
- Maîtriser la méthode Java String compareTo() : Syntaxe, cas d'usage et exemples pratiques
- Lecture de Fichiers en Java avec BufferedReader – Guide Pratique avec Exemples
- Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques