« Introduction au langage C/Allocation dynamique de mémoire » : différence entre les versions

Contenu supprimé Contenu ajouté
Ppignol (discussion | contributions)
Ligne 80 :
Pour créer un tableau de taille variable vous devez faire :
<source lang="C">int *tab = calloc(var, sizeof(int));</source>
 
== Allocation dynamique d'un tableau à "n" dimensions ==
 
Il peut être utile de créer des tableaux dynamiques à plusieurs dimensions. Dans ce cas, il faut créer des indirections de pointeurs multiples.
 
<source lang="C">unsigned int x = 2;//unsigned car les nombres négatifs ne sont pas pertinents ici.
unsigned int y = 3;//unsigned car les nombres négatifs ne sont pas pertinents ici.
int** tab = malloc(x * sizeof(int*));
unsigned int i;
unsigned int j;
for (i = 0; i < x; i++)
{
tab[i] = malloc(y * sizeof(int);
for(j = 0; j < y; j++)
{
tab[i][j] = i * x + j;
}
}
/*...Do something here...*/
for (i = 0; i < x; i++)
{
for(j = 0; j < y; j++)
{
free(tab[i][j]);
}
free(tab[i]);
}
free(tab);
</source>
 
{{Bas de page|titre=Allocation dynamique de mémoire|idfaculté=informatique|leçon=[[Langage C]] | précédent = [[../Sources/]]|suivant=}}