Une fonction qui renvoie un tableau

RLBDC Messages postés 7 Date d'inscription dimanche 28 mars 2004 Statut Membre Dernière intervention 27 mars 2007 - 15 juin 2005 à 13:48
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 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

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
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
}

// appel:
int t[10];
createTab(t);
0
Rejoignez-nous