RLBDC
Messages postés7Date d'inscriptiondimanche 28 mars 2004StatutMembreDernière intervention27 mars 2007
-
15 juin 2005 à 13:48
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 2010
-
15 juin 2005 à 14:18
Bonjour ,
Je suis encore noob en C, et je ne trouve pas comment on fait pour qu'une fonction retourne un tableau .
En gros, je souhaiterais pouvoir faire :
fonction createTab ( paramètres ) {
}
qui renvoie un tableau en fonction des paramètres ..
et que je puisse utiliser comme suit :
int tableau[taille_tableau] = createTab( paramètres );
Pouvez-vous me filer un coup de main svp ?
Merci d'avance
A voir également:
Retourner un tableau en c
Fonction qui retourne un tableau en c - Meilleures réponses
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 juin 2005 à 13:55
Une fonction ne peut pas renvoyer un tableau, car les tableaux réservés dans une fonction n'existent plus quand la fonction est terminée.
Une solution est d'allouer dans la fonction, avec malloc ou new. Dans ce cas on parle de pointeur plutot que de tableau:
int* createTab()
{
return new int[10];
}
// appel:
int* p = createTab();
delete[] p;
C'est dans ce cas à l'appelant de libérer la mémoire.
L'autre solution (la plus utilisée) est que c'est l'appelant qui déclare le tableau:
void createTab(int t[10])
{
initialisation du tableau
}
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 juin 2005 à 14:18
Si tu alloues dans la fonction, ca ne sert à rien de passer le pointeur en paramètre, l'appelant ne pourra pas le récupérer (le pointeur est passé par valeur).