tomalille
Messages postés52Date d'inscriptionjeudi 16 juin 2005StatutMembreDernière intervention 5 juin 2007
-
16 mai 2006 à 20:46
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
16 mai 2006 à 22:06
Bonjour,
je dois faire une procedure qui doit renvoyer un tableau. Voici ce que j'ai ecrit:
dans le .h
int* retournerTableau(void);
dans le .cpp
int* Graphe::retournerTableau(void)
{
int i,j;
int res[nbNoeuds][nbNoeuds];
for(i=0;i<nbNoeuds;i++)
{
for(j=0;j<nbNoeuds;j++)
res[i][j] = 0;
}
return res;
}
Graphes.cpp: In member function 'int* Graphe::retournerTableau()':
Graphes.cpp:144: error: cannot convert 'int (*)[(((unsigned
int)(((int)((Graphe*)this)->Graphe::nbNoeuds) - 1)) + 1u)]' to
'int*' in return
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 mai 2006 à 22:06
On ne renvoie jamais une donnée locale, c'est écrasé en sortant de la fonction. Il faut faire une alloc et retourner le pointeur.
Ceci dit, comme dit plus haut, le mieux est de recevoir le pointeur tableau et de le faire remplir par la fonction, encore faut-il recevoir aussi le nbr d'éléments à remplir.