[DEBUG] petit souci lors de la compilation...
Bonjour,
J'utilise un tableau d'entiers à deux dimensions : tab[2][nb]; où nb représente une variable initialisée avant, deux erreurs se montrent lors de la compilation gcc lorsque je passe ce tableau comme arguments à une fonction tordre qui prends deux char* en paramètre (chaînes), pour ce faire j'appelle ainsi :
Code:
1 2
|
pts += tordre( choisir(tab[i][k]), choisir(tab[n-i][k]) ); |
où pts est de type entier (initialisé à 0 avant.) et choisir prends un entier en paramètre et retourne un char* (il contient un switch.)
Pourtant voici les erreurs lors de la compilation :
Code:
1 2 3
|
invalid use of array with unspecified bounds
called object is not a function |
Je précise que je suis sous Linux avec l'éditeur emacs...
Merci pour votre aide.
Re: [DEBUG] petit souci lors de la compilation...
Citation:
Envoyé par alex6891
J'utilise un tableau d'entiers à deux dimensions : tab[2][nb]; où nb représente une variable initialisée avant,
Je ne suis pas sûr qu'on puisse faire çà en C, même en C99...
Citation:
deux erreurs se montrent lors de la compilation gcc lorsque je passe ce tableau comme arguments à une fonction tordre qui prends deux char* en paramètre (chaînes), pour ce faire j'appelle ainsi :
Code:
pts += tordre( choisir(tab[i][k]), choisir(tab[n-i][k]) );
Mauvaise pratique. L'ordre d'évaluation des paramètres n'est pas défini en C. Il vaut mieux appeler les foctions dans l'ordre requis (il peut avoir une importance, sticker les résultats dans des variables intermédiaires, et ensuite passer le résultat à la fonction...
Citation:
où pts est de type entier (initialisé à 0 avant.) et choisir prends un entier en paramètre et retourne un char* (il contient un switch.)
Pourtant voici les erreurs lors de la compilation :
Code:
1 2 3
|
invalid use of array with unspecified bounds
called object is not a function |
Je précise que je suis sous Linux avec l'éditeur emacs...
Ce qui compte c'est le compilateur... gcc ? Quelle version ? Quels reglages ?
Sinon, pour passer l'adresse du premier élément d'un tableau à 2 dimensions, on utilise ce type de pointeur :
Code:
void func(T a[X][Y])
ou
Code:
void func(T a[][Y])
X et Y sont des expressions constantes.