Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1637 connectés 

  FORUM HardWare.fr
  Programmation
  C

  problem de tableau a 2 dim passer en argument dans une fonction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problem de tableau a 2 dim passer en argument dans une fonction

n°551828
notben
la vie n'est pas un long fl...
Posté le 27-10-2003 à 19:21:26  profilanswer
 

bonjour  
a tout le monde  
bon je vient posé mon petit bug perso  sur ce beau forum  
et j'espert trouvee quelqun qui poura repondre a ma question  
bon j'attack  
dabord la source :
/*debut */
 
#define MAX 100
//fonction afficher le tableau
void afficher(int T[][],int l,int L)
{
int i=0,j=0,c;
while (j<=l){
    printf("\n" );
        while (i<=L){
                c=T[j][i];
                printf("%d",c);
                i=i+1;
        }
    printf("\n" );
    j=j+1;
    }
return;
}
int main(void)
{
int T1[2][3] = {{1,2,3},{1,2,3}};
afficher(T1,3,2);
return 0;
}
/*fin*/
 
voila alors on me dit a al compilation:  
invalid use of array with unspecified bounds ligne 9
cad  la ligne ou c marquer:
c=T[j][i];
voilà  
bon bin si ya quelqun qui a une idee j'aimerai bien pouvoir compiler ce bordel pour avancer mon bouleau  
merci de m'avoir lu meme si vous n'aver pas d'idée c simpas d'essayer..
 
 
 
 
 
 
 
 
 

mood
Publicité
Posté le 27-10-2003 à 19:21:26  profilanswer
 

n°551865
LetoII
Le dormeur doit se réveiller
Posté le 27-10-2003 à 19:53:58  profilanswer
 

:heink: C quoi ce double topic?


---------------
Le Tyran
n°551873
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-10-2003 à 20:00:03  profilanswer
 

notben >> y'en a marre à force de déchiffrer du code ! y'a des balises C/C++, c'est fait pour rendre le code plus lisible et c'est pas fait pour les chiens.  
 
edit: et fais un effort sur l'orthographe aussi :pfff:


Message édité par Harkonnen le 27-10-2003 à 20:14:44
n°556451
xWillow
Posté le 01-11-2003 à 19:32:03  profilanswer
 

oui l'orthographe tape à l'oeil, le code aussi. Pas besoin de balises pour voir que c'est n'importe quoi.


Message édité par xWillow le 01-11-2003 à 19:33:16
n°556453
Hermes le ​Messager
Breton Quiétiste
Posté le 01-11-2003 à 19:40:03  profilanswer
 

notben a écrit :

bon bin si ya quelqun qui a une idee j'aimerai bien pouvoir compiler ce bordel pour avancer mon bouleau
merci de m'avoir lu meme si vous n'aver pas d'idée c simpas d'essayer..
 
 


 
Laisse ta hache, et chauffe toi au gaz, il parait que c'est moins cher...  :D

n°556465
Kristoph
Posté le 01-11-2003 à 20:22:32  profilanswer
 

Tu ne peux pas utiliser des tableaux multidimension si tu ne spécifie pas sa taille.
 
Remplace "int T[][]" par "int * T" et fais ca pour y acceder : "T[i+j*taillex]"

n°556605
freeman_78
Posté le 02-11-2003 à 10:35:17  profilanswer
 

oula Kristoph tu fais appel aux pointeurs, je ne sais pas s'il a vu ça encore ... en tout cas quand j'en étais aux tableaux à 2 dimensions je n'avais pas vu ces bêtes là :)
 
Pour le problème des tableaux en argument, en spécifiant uniquement la première dimension dans la définition de la fonction qui appelle le tableau je crois que ça marche.

n°556610
Kristoph
Posté le 02-11-2003 à 10:53:11  profilanswer
 

freeman_78 a écrit :

oula Kristoph tu fais appel aux pointeurs, je ne sais pas s'il a vu ça encore ... en tout cas quand j'en étais aux tableaux à 2 dimensions je n'avais pas vu ces bêtes là :)
 
Pour le problème des tableaux en argument, en spécifiant uniquement la première dimension dans la définition de la fonction qui appelle le tableau je crois que ça marche.


 
Il n'a pas le choix ici puisqu'il doit passer les dimensions du tableau en paramètre. Ta solution l'oblige à figer toutes les dimensions du tableau sauf une.

n°556704
freeman_78
Posté le 02-11-2003 à 14:03:58  profilanswer
 

Ah oui s'il veut que la fonction s'adapte à la taille du tableau il faut utiliser les pointeurs en effet :)
 
Mea culpa :)

n°557152
bugsan
Posté le 02-11-2003 à 22:20:54  profilanswer
 

meme avec un int **T (et oui, pas int * T)
il peut faire T[i][j]

mood
Publicité
Posté le 02-11-2003 à 22:20:54  profilanswer
 

n°557160
bugsan
Posté le 02-11-2003 à 22:39:00  profilanswer
 

méaculpa, sans pointeur, il suffit de préciser la structure du tableau;
void afficher(int T[2][3],int l,int L)

n°557171
Kristoph
Posté le 02-11-2003 à 22:57:02  profilanswer
 

bugsan a écrit :

méaculpa, sans pointeur, il suffit de préciser la structure du tableau;
void afficher(int T[2][3],int l,int L)


 
Et dans ce cas, quel est l'interet de passer en paramètre la largeur et la longueur du tableau si la taille de celui-ci est fixée à l'avance ?

n°562236
darkpotpot
:3 muuuuuuuuuuuuuUUUUUUU
Posté le 08-11-2003 à 12:52:08  profilanswer
 

sinoc fait comme ca
 
void afficher(int l,int L, int T[l][L])

n°562254
Kristoph
Posté le 08-11-2003 à 13:17:26  profilanswer
 

darkpotpot a écrit :

sinoc fait comme ca
 
void afficher(int l,int L, int T[l][L])


 
C'est pas mal ça, je ne connaissais pas cette notation. Depuis quelle version du C on peut faire ça ?

n°562429
Carbon_14
Posté le 08-11-2003 à 18:17:29  profilanswer
 

C'est pas un truc du genre void afficher(int T[2][],int l,int L) ? Ai vu qq chose comme ça qq part (FFT je crois, jamais utilisé)... On spécifie la première dim (lignes) pour que le compilo sache comment décaler pour trouver les colonnes.

n°562457
darkpotpot
:3 muuuuuuuuuuuuuUUUUUUU
Posté le 08-11-2003 à 19:06:55  profilanswer
 

Kristoph a écrit :


 
C'est pas mal ça, je ne connaissais pas cette notation. Depuis quelle version du C on peut faire ça ?


sait pas depuis quelle version mais je l'utilise en ce moment car le prof veut pas qu'on se serve des pointeurs donc ca marche. le seul truc a faire c'est de declarer le nom de tes lignes et de tes colonnes avant

n°562458
chrisbk
-
Posté le 08-11-2003 à 19:08:49  profilanswer
 

y doit etre beau le code généré derriere [:joce]

n°563702
freeman_78
Posté le 11-11-2003 à 09:56:02  profilanswer
 

CARBON_14 a écrit :

C'est pas un truc du genre void afficher(int T[2][],int l,int L) ? Ai vu qq chose comme ça qq part (FFT je crois, jamais utilisé)... On spécifie la première dim (lignes) pour que le compilo sache comment décaler pour trouver les colonnes.
 


C'est à peu près ce que je voulais dire plus haut :)
Sauf que come tu spécifies déjà une dimension, t'as soit l soit L à transmettre en paramètre, mais pas les deux je pense ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  problem de tableau a 2 dim passer en argument dans une fonction

 

Sujets relatifs
[C][Newbie][Résolu] Déclaration de tableau[html/css] question pour un tableau!
[EXCEL] Comment utiliser une macro en tant que fonction d'excel ??bordure du milieu dans un tableau
Comment fait-on pour passer en parametre une fonction à une méthode ?[PHP] Passer une commande système unix en php.
[VB.net] Comment passer un Array String a une fonction sans variableFonction combinatoire (C(n,p))
Plus de sujets relatifs à : problem de tableau a 2 dim passer en argument dans une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR