« Programmation C/Pointeurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 173 :
}
free(matrice);
</source>
 
Voici maintenant un exemple d'une fonction créant un tableau à trois dimensions avec des expressions génériques et surtout les tests des valeurs de retour des fonctions malloc (usage conseillé) :
<source lang="c">
int ***
malloc_3d(int nb_tableau, int lignes, int colonnes)
{
int i;
int j;
 
int***t = (int***) malloc(sizeof(int**) * nb_tableau);
/* première dimension */
if (t==NULL)
{
printf ("Impossible d'initialiser avec malloc\n" );
exit (-1);
}
for (i=0;i< nb_tableau;i++) {
t[i] = (int**) malloc(sizeof(int *) * lignes);
/* deuxième dimension */
if (t[i]==NULL) {
printf ("Impossible d'initialiser avec malloc\n" );
exit (-1);
}
for (j=0;j<lignes;j++) {
/* 3 dimension */
t[i][j] = (int*) malloc(sizeof(int ) * colonnes);
if (t[i][j]==NULL)
{
printf ("Impossible d'initialiser avec malloc\n" );
exit (-1);
}
}
}
return t;
}
</source>