Retourner un tableau d'une fonction

Signaler
Messages postés
8
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
27 juin 2009
-
Messages postés
8
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
27 juin 2009
-
Bonjour,
je voudrais récupérer le tableau d'une fonction ici tab[5][5] afin de l'utiliser dans une autre fonction ainsi l'afficher.

comment puis je faire?



void PA(char tab[5][5])

{

char lettre;

int chiffre;

int colonne;

 
scanf("%1s%1d",&lettre,&chiffre);

 
 
printf("%c%d\n",lettre,chiffre);

 
 
 
if (colonne!=1)

{

grille[chiffre][colonne-1]='d';

}

 
if (colonne<6)

{

grille[chiffre][colonne+5]='e';

}

 
for(j=0;j<5;j++)

{

grille[chiffre][colonne]='t';    

if(chiffre!=10)

{

grille[chiffre+1][colonne]='b';

}

 
if(chiffre!=1)

{

grille[chiffre-1][colonne]='g';

}

 
 
colonne++;

 
}

void Pl(char tab[5][5])

{

char lettre;

int chiffre,colonne;

 
   
if((colonne>7) || (colonne <1) || (tab[chiffre][colonne]=='d') || (tab[chiffre][colonne+4]=='d') || (tab[chiffre][colonne]=='e') || (tab[chiffre][colonne+4]=='e') )

{

printf("Impossible de positionner\n");

 
 
}
}

5 réponses

Messages postés
338
Date d'inscription
samedi 9 août 2003
Statut
Membre
Dernière intervention
9 juillet 2011
2
un tableau est une reference si tu le modifies dans la fonction  tab[5][5] sera modifié meme apres l'appel de la fonction

Pa(MonTableau);
Afficher(MonTableau);
Messages postés
8
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
27 juin 2009

pouvez vous me donner un exemple s'il vous plait?
Messages postés
8
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
27 juin 2009

Un ami m'a dit que c'est normal que cela ne fonctionne pas car il faut utiliser les pointeurs de tableaux.
Messages postés
351
Date d'inscription
mercredi 21 juillet 2004
Statut
Membre
Dernière intervention
12 août 2009

Bonjour,
comme l'a dit gamemonde, l'envoi d'un tableau comme argument d'une procédure est une référence, c'est le pointeur vers ton tableau.
Cela revient à envoyer ton vrai tableau et non pas une copie (comme c'est le cas avec une variable)
void PA(char tab[5][5])  'la procédure attend le tableau

AfficherMonTableau(MonTableau) ' j'envoi le pointeur du tableau

pour info
int UnNombre
 void Calcul( int *LeNombre) ' la fonction attend un pointeur

(il y a longtemps que je n'ai pas fait de C mais je ne crois pas me tromper)
thierry la fronde
Messages postés
8
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
27 juin 2009

si je fait ça dans mon prog alors je ne peut comparer les caractère dans la fonctions PI:

void mafonction(char tab[5][5])
{
char lettre;
int chiffre;
int colonne;
 
scanf("%1s%1d",&lettre,&chiffre);
 
 
printf("%c%d\n",lettre,chiffre);
 
 
 
if (colonne!=1)
{
grille[chiffre][colonne-1]='d';
}
 
if (colonne<6)
{
grille[chiffre][colonne+5]='e';
}
 
for(j=0;j<5;j++)
{
grille[chiffre][colonne]='t';    
if(chiffre!=10)
{
grille[chiffre+1][colonne]='b';
}
 
if(chiffre!=1)
{
grille[chiffre-1][colonne]='g';
}
 
 
colonne++;
 
}

void Pl(char tab[5][5])
{

char lettre;
int chiffre,colonne;
 
   
if((colonne>7)
|| (colonne <1) || (tab[chiffre][colonne]=='d') ||
(tab[chiffre][colonne+4]=='d') || (tab[chiffre][colonne]=='e') ||
(tab[chiffre][colonne+4]=='e') )
{
printf("Impossible de positionner\n");
 
 
}
}

int main()
{

char tab[5][5];
mafonction(tab);
PI(tab);

return0;
}