Retourner un tableau d'une fonction

momojamal Messages postés 8 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 27 juin 2009 - 7 oct. 2008 à 22:32
momojamal Messages postés 8 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 27 juin 2009 - 10 oct. 2008 à 16:41
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

gamemonde Messages postés 336 Date d'inscription samedi 9 août 2003 Statut Membre Dernière intervention 9 juillet 2011 2
7 oct. 2008 à 23:44
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);
0
momojamal Messages postés 8 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 27 juin 2009
8 oct. 2008 à 21:44
pouvez vous me donner un exemple s'il vous plait?
0
momojamal Messages postés 8 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 27 juin 2009
8 oct. 2008 à 23:06
Un ami m'a dit que c'est normal que cela ne fonctionne pas car il faut utiliser les pointeurs de tableaux.
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
9 oct. 2008 à 09:15
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
momojamal Messages postés 8 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 27 juin 2009
10 oct. 2008 à 16:41
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;
}
0
Rejoignez-nous