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

Contenu supprimé Contenu ajouté
Tados (discussion | contributions)
→‎Tableaux dynamiques : Modification du code
Ligne 158 :
int i;
 
int ** matrice = malloc(sizeof *matrice * LIGNES);
 
for (i = 0; i < LIGNES; i++)
Ligne 177 :
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 <code>malloc();</code> appelées (usage conseillé) :
<source lang="c">
int *** malloc_3d(int nb_tableau, int lignes, int colonnes)
int ***
malloc_3d(int nb_tableau, int lignes, int colonnes)
{
int i;
int j;
 
int***t = (int***) malloc(sizeof(int**t) * nb_tableau);
/* première dimension */
if (t==NULL)
Ligne 192 ⟶ 191 :
for (i=0;i< nb_tableau;i++) {
t[i] = (int**) malloc(sizeof(int **t) * lignes);
/* deuxième dimension */
if (t[i]==NULL) {
Ligne 200 ⟶ 199 :
for (j=0;j<lignes;j++) {
/* troisième dimension */
t[i][j] = (int*) malloc(sizeof(int ***t) * colonnes);
if (t[i][j]==NULL)
{
printf ("Impossible d'initialiser avec malloc\n" );
exit (-1);
}
}
}