Voila je suis votre manuel et jobtien:Citation:
Envoyé par Emmanuel Delahaye
syntax error before ']' token
Version imprimable
Voila je suis votre manuel et jobtien:Citation:
Envoyé par Emmanuel Delahaye
syntax error before ']' token
Je suis censé deviner avec quel code ?Citation:
Envoyé par miron
lors du passage en argument de mon tab.je prefere ne pas montrer pour eviter toute engelade...Citation:
Envoyé par Emmanuel Delahaye
Ce que j'envois...^^^^^^^^^^^^^^^^^^Code:Tab[][11]
. ||||||||||||||||||||||||||||
Ce que je te demande, mais que tu n'as pas l'air de vouloir comprendre, c'est de réduire ton code au minimum qui montre le problème. C'est quand même pas difficile. Ce minimum doit être complet.Citation:
Envoyé par miron
C'est compliqué de comprendre ça ?
Je ne veux pas d'une fonction avec 50 paramètres qui n'ont rien à voir avec le problème. T'arrives à comprendre ça ? Se concentrer sur un problème à la fois, c'est le bon sens, non ?
Mamma mia...Citation:
Envoyé par miron
Alors montre moi 3 choses.
1 - La définition du tableau.
2 - Le prototype de la fonction réduite au minimum qui nous intéresse
3 - l'appel de la fonction. (mêmes conditions).
Ce qui est surprenant, c'est qu'Emmanuel a deja repondu a ta question de nombreuses fois...
Voici un petit code un peu moche qui initialise un tableau a deux dimensions puis l'affiche sur le terminal. Cela devrait te mettre sur la voie...
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 #include <stdio.h> #define DIM1 2 #define DIM2 3 void init(int tab[][DIM2], int dim1, int dim2) { int i; int j; for (i=0; i<dim1; i++) { for (j=0; j<dim2; j++) { tab[i][j] = i + j; } } } void display(int tab[][DIM2], int dim1, int dim2) { int i; int j; for (i=0; i<dim1; i++) { for (j=0; j<dim2; j++) { printf("%d ", tab[i][j]); } printf("\n"); } } int main(void) { int tab[DIM1][DIM2]; init(tab, DIM1, DIM2); display(tab, DIM1, DIM2); return 0; }
Citation:
Envoyé par miron
Code:[Warning] passing arg 18 of `demarage' from incompatible pointer type
DIM1 et DIM2 sont des nombres ou des variables?Citation:
Envoyé par DaZumba
dsl pas vu les define
Comme mon main est avant ma fonction j'ei predeclarer ma fonction:et j'ai le code d'erreur sur la ligne suivante:Code:void demarage(char*,int,int);
code d'erreurCode:demarage(voiture_aff,DIM1,DIM2);
Code:[Warning] passing arg 1 of `demarage' from incompatible pointer type
To -> miron
Je pense qu'il va falloir reprendre ton problême à la base, et arréter de poster n'importe quoi.
Essai d'abord de faire un code simple avec une fonction main.
Je m'en fous de ce délire. Ce n'est pas ce que je t'ai demandé.Citation:
Envoyé par miron
Je t'ai expressément demandé 3 choses, je veux ces trois choses et rien d'autre, sinon, je vais pas plus loin.
Si tu n'es pas capable de suivre une consigne, change de métier.
Et si tu cherches à tester mes limites, sache que tu y'es presque, alors prudence...
Des constantes bien sûr. Ce sont les dimensions du tableau. Tu mets ce que tu veux.Citation:
Envoyé par miron
Code:
1
2
3 #define DIM1 ... #define DIM2 ...
VoilaCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #include<stdio.h> #include<stdlib.h> #define DIM1 15 #define DIM2 11 void demarage(char,int,int); int main() { char tab[DIM1][DIM2]; demarage(tab,DIM1,DIM2); system("pause"); } void demarage(char tab[DIM1][DIM2],int dim1,int dim2) { int i; int j; for (i=0; i<dim1; i++) { for (j=0; j<dim2; j++) { tab[i][j] = i + j + 97; printf("%c ",tab[i][j]); } } }
Cela ne fonctionne pas...
Non ce n'est pas du tout ca, loin de la.Citation:
Envoyé par Emmanuel Delahaye
Eh bé, tout ça pour en arriver là, c'est laborieux !Citation:
Envoyé par miron
J'ai mes 3 éléments et dans un code complet. OK. Ouf !
Et si tu mettais un prototype cohérent avec la définition de la fonction, tu ne crois pas que ça irait mieux ?
Parce que là, j'ai un peu du mal à voir qui a raison.Code:
1
2
3 void demarage(char,int,int); void demarage(char tab[DIM1][DIM2],int dim1,int dim2)
Le reste, ça va.
Correction, amélioration (pose des questions si tu ne comprends pas) :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 #include<stdio.h> #define DIM1 15 #define DIM2 11 void demarage(char[][DIM2], int, int); void aff(char const [][DIM2], int, int); int main() { char tab[DIM1][DIM2]; demarage(tab, DIM1, DIM2); aff(tab, DIM1, DIM2); } void demarage(char tab[][DIM2], int dim1, int dim2) { int i; for (i = 0; i < dim1; i++) { int j; for (j = 0; j < dim2; j++) { tab[i][j] = i + j + 97; } } } void aff(char const tab[][DIM2], int dim1, int dim2) { int i; for (i = 0; i < dim1; i++) { int j; for (j = 0; j < dim2; j++) { printf("%c ", tab[i][j]); } printf("\n"); } printf("\n"); }
Merci mon probleme venais de ma predeclaration...Citation:
Envoyé par Emmanuel Delahaye
Merci
Merci
Merci.
Ca fesais la journée que je cherchais...
MerciMerci