Utilisation d'un tableau dans une fonction

Utilisation d'un tableau dans une fonction

par Aman Bansal,
Number of replies: 3
typedef int Grid[][]
int function(Grid* grid) {
  *grid[0][0] = *grid[0][0] + 1;
}

Bonjour,

Ma question est par rapport au code ci dessus. 

Je ne comprends pas pourquoi la troisième ligne ne marche pas (en supposant que le tableau a bien été initialisé).

Merci en avance !

In reply to Aman Bansal

Re: Utilisation d'un tableau dans une fonction

par Melvin Kalou Georges Albert Malonga-Matouba,

Les tableaux statiques sont passés par référence même quand on écrit simplement (Grid grid) comme paramètre. (slide 22) 

Le pointeur ne devrait pas être nécessaire.

Cependant ceci:

void funct(Grille* grille){

*grille[0][0] = *grille[0][0] + 1;

}

compile chez moi, quelle est la sortie lors de la tentative de compilation ?

In reply to Melvin Kalou Georges Albert Malonga-Matouba

Re: Utilisation d'un tableau dans une fonction

par Aman Bansal,
Merci pour la réponse.

Ça compile chez moi aussi mais la nouvelle valeur n'est pas écrite dans le tableau.
In reply to Aman Bansal

Re: Utilisation d'un tableau dans une fonction

par Deleted user,
Bonjour,

Si vous ne constatez aucune modification, c'est que vous avez probablement oublié de passer l'adresse de la grille lors de l'appel à function, c'est-à-dire function(&someGrid);.

Je me permets également de faire une remarque sur l'expression *grid[0][0]. Compte tenu de la priorité des opérateurs, cette expression est équivalente à *(grid[0][0]), ce que vous ne voulez pas forcément.