Maison > Article > développement back-end > Pourquoi C lance-t-il "attendu ',' ou '...' avant le jeton '*'" lors du passage d'un tableau bidimensionnel par référence ?
Lors de la tentative de transmission d'une référence à un tableau bidimensionnel à une fonction dans C , les utilisateurs peuvent rencontrer l'erreur "attendu ',' ou '...' avant le jeton '*'" de g . La question se pose : qu'indique cette erreur et comment la résoudre ?
L'erreur indique que le prototype de fonction pour do_something() est incorrect. Pour transmettre une référence à un tableau bidimensionnel avec des dimensions connues au moment de la compilation, la syntaxe suivante doit être utilisée :
<code class="cpp">void do_something(int (&array)[board_width][board_height]);</code>
Déclarer le paramètre comme int array[board_width][board_height]; passerait à la place un pointeur vers le premier sous-tableau du tableau, ce qui n'est pas la fonctionnalité souhaitée dans ce cas.
La syntaxe de référence &array garantit que le tableau réel est transmis par référence, permettant à la fonction de modifier directement le contenu du tableau. La notation int (&array)[board_width][board_height] spécifie que le tableau de paramètres est une référence à un tableau bidimensionnel avec les dimensions board_width et board_height.
En revanche, int array[board_width][board_height] ; déclare le tableau de paramètres comme un pointeur vers un tableau unidimensionnel d'entiers board_height, ignorant ainsi la deuxième dimension du tableau. Cela entraîne l'erreur signalée car la syntaxe est incorrecte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!