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:
Fonction qui retourne un tableau en c
Fonction qui renvoie un tableau en c - Meilleures réponses
Fonction qui retourne un tableau - Meilleures réponses
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
}
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).