Fonction qui renvoie un tableau?
Bonjour à nouveau, encore quelques petites questions de débutant:
Je n'arrive pas à créer une fonction qui renvoie un tableau d'entiers de sorte que je puisse attribuer à un tableau dans ma fonction principale le tableau renvoyé par cette fonction auxilliaire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| int main()
{
int a[32];
a=sendTab();
return 1;
}
int[] sendTab()
{
int b[32];
return b;
} |
Je souhaiterais assigner à mon a[32] les valeurs de b[32].
Je suppose que d'une part, contrairement à JAVA, int[] fonction n'est pas une fonction qui renvoie un tableau...
D'autre part, j'ai remarqué que ceci renvoie une erreur:
Code:
1 2 3
| int a[32];
int b[32];
a=b; |
Même pour des tableaux de même taille on ne peut pas les égaliser? Peut-être faut-il passer par l'usage des pointeurs, mais venant de JAVA je ne suis pas encore très aisé avec leur utilisation (et quand les utiliser).
Des idées?
Re: Fonction qui renvoie un tableau?
Citation:
Envoyé par elm
Je n'arrive pas à créer une fonction qui renvoie un tableau d'entiers de sorte que je puisse attribuer à un tableau dans ma fonction principale le tableau renvoyé par cette fonction auxilliaire:
Normal. Tu ne peux renvoyer qu'une adresse, et celle-ci doit être valide après l'éxécution de la fonction. Comme le tableau est défini localement, son adresse est évidemment invalide après le 'return'.
Il y a deux façons sérieuses de traiter ce problème :
- Passer l'adresse du premier élément d'un tableau (et sa taille) défini par l'appelant (et éventuellement retourner cette adresse, mais c'est peu intéressant)
- Retourner l'adresse d'un tableau alloué dynamiquement (qu'il faudra bien sûr libérer après usage).