Professional Documents
Culture Documents
GESTION DYNAMIQUE DE LA
MEMOIRE
Gnralits
Lors de la dfinition d'un tableau, on est oblig
de fixer (souvent arbitrairement) la
compilation le nombre d'lments de ce
tableau, ce qui peut conduire une mauvaise
utilisation de l'ensemble de la mmoire.
Prototype :
#include <stdlib.h>
void *malloc( int nb ) ;
Exemple 1 :
#include <stdlib.h>
char *ptr ;
int i, taille ;
/*allocation d'une zone de "taille"
ptr = malloc(taille) ; octets utilise pour stocker un
tableau de "taille" char */
for(i=0 ; i<taille ; i++)
*( ptr + i ) = 'x ;
Exemple 2 :
#include <stdlib.h>
int *ptr ;
int i , nb ; /* allocation d'une zone
de k octets, k gal "nb"
multipli par la taille
ptr = malloc(nb * sizeof(int)); d'un objet int.
for(i=0 ; i<nb ; i++ ) La zone est utilise pour
stocker un tableau de "nb"
*(ptr+i)=0; entiers */
Prototype :
#include <stdlib.h>
void free (void *ptr) ;
Remarque:
Il est important
z de tester le code retour demalloc afin de
s'assurer que l'allocation a bien t faite :
code retour != NULL
z de librer les zones mmoires prcdemment
alloues et dont on n'a plus besoin, afin
d'viter de saturer la mmoire .