Utilisation d'un tableau dans une fonction

Utilisation d'un tableau dans une fonction

by 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

by 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

by 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

by 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.