Euh.......encore des soucis avec les étoiles Emdel ?;)Citation:
Envoyé par Emmanuel Delahaye
Version imprimable
Euh.......encore des soucis avec les étoiles Emdel ?;)Citation:
Envoyé par Emmanuel Delahaye
Ou est l'erreur?Citation:
Envoyé par crocodilex
Lorsqu'on passe l'adresse du premier élément d'un tableau à 2 dimensions, on utilise un pointeur de typeCitation:
Envoyé par miron
Qui peut aussi s'écrireCode:T p[DIM1][DIM2]
mais pasCode:T p[][DIM2]
Pourquoi ?Code:T p[][]
Tout simplement parce que pour pouvoir utiliser la notation [i][j] pour accéder à un élément du tableau, le compilateur à besoin de calculer l'adresse d'un élément dans le tableau qui est
adresse de p[i][j] = p + i + (j x DIM2) parce qu'en réalité le tableau est linéaire (la notion de 2 dimensions est humaine, mais n'influence pas la disposition des données)
Donc, il doit connaître DIM2. C'est aussi simple que ça.
Oui ! Il m'embrouille avec ses codes bizarres...Citation:
Envoyé par crocodilex
Le type du paramètre est faux. J'ai corrigé.Citation:
Envoyé par miron
Si on utile la premiere forme, C'est l@ de la premiere case du tableau, mais pour la derniere il faut la mettre dans une variable sup...Si j'ai bien compris...Citation:
Envoyé par Emmanuel Delahaye
Ou il y a une autre forme comme sans les [][] ou?
En tout cas pour ce qui est des [][] je pensse que j'ai compris.Merci
Cela ne fonctionne que pour un tableau a une dimention?Code:
1
2
3
4 char Nom_voiture[20]; ma_fonction(Nom_voiture) void ma_fonction(char*Nom_voiture)
Non. La dernière n'existe pas. Point. (Erreur de compilation).Citation:
Envoyé par miron
Dimension... Oui.Citation:
Envoyé par miron
J'aurais pu aussi écrire
ouCode:void ma_fonction(char Nom_voiture[2000])
ouCode:void ma_fonction(char Nom_voiture[20])
Ca n'aurait rien changé. J'ai été au plus court...Code:void ma_fonction(char Nom_voiture[])
Mince et pour 2 il faut mettre un parametre sup?Comme dit precedament...Citation:
Envoyé par Emmanuel Delahaye
Ca dépend de ce que doit faire la fonction, mais oui, en général on a besoin de connaitre les dimensions du tableau pour travailler dessus (ne serait-ce que pour êtr sûr qu'on n'ecrivent pas au-dela de ses limites)...Citation:
Envoyé par miron
un appel comme ca cela va...?
Je suis embrouillé comme pas possible...Code:voiture_aff,15,11
C'est pas un appel. Tout ou plus une vague liste de paramètres. Donne ton code en entier (mais réduit au minimum compilable), sinon, on ne sait pas ce que tu as oublié.Citation:
Envoyé par miron
Si vous pouviez me dire pour quoi cela ne va 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 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <time.h> #include <math.h> #include <dos.h> #include <string.h> #include <windows.h> #define VERSION 2.5 //----------------------------------------------------------------------------- void Ordi (char*,int,int); //----------------------------------------------------------------------------- int main() { int choix; char Nom_voiture[20]; while(choix!=51) { switch(choix) { case 49 : Ordi(voiture_aff,15,11);break; case 50 : ... } } } //----------------------------------------------------------------------------- void Ordi(char*voiture_aff,int h,int l) { ... *voiture_aff[1][5]='_'; *voiture_aff[1][6]='_'; voiture_aff[2][4]='/'; ... } ...
Il faut que tu sois coherent. Si ton tableau voiture_aff a une dimension, alors traite-le comme tel dans ta fonction (i.e. pas d'acces a [ ][ ]). Si le tableau a deux dimensions, alors l'argument de la fonction est char voiture_aff[ ][MAXLEN] ou MAXLEN est la deuxieme dimension, soit char **voiture_aff.
Tout cela est explique dans ce thread, je crois bien.
Là, tu vas finir de l'embrouiller définitivement...Citation:
Envoyé par DaZumba
Ca c'est un pointeur de pointeur.Citation:
Envoyé par Emmanuel Delahaye
Jamain utilisé, mais deja vu dans des forum.
Ca s'utilise comme un pointeur...Non?:D
Tu verras çà quand tu seras grand. Commence par te clarifier avec les tableaux et les passages de paramètres.Citation:
Envoyé par miron
Une chose à la fois. On ne passe à l'étape suivante que quand l'étape courante est maitrisée...
Je veux bien attendre d'etre grand, mais je voudrais pouvoir passer un tableau en paramettres(tableau2dim)Citation:
Envoyé par Emmanuel Delahaye
On se tue à te l'expliquer (message #6, par exemple) et je t'ai passé un lien. Qu'est-ce que tu n'as pas compris ?Citation:
Envoyé par miron