Premières galères avec les tableaux et les pointeurs
Bonjour, bonsoir,
ayant depuis peu commencé à me familiariser avec le C, je suis arrivé récemment au sujet le plus "casse-tête" d'après les dires, à savoir les pointeurs. Et après quelques temps de galère, je dois avouer que je n'arrive toujours pas à trouver le bon de mon chemin. Mon problème est le suivant : j'aimerais créer une fonction qui va, à partir d'un argument, générer un tableau unidimensionnel, que j'aimerais ensuite pouvoir injecter à une autre fonction pour qu'elle puisse le modifier.
Voici le schéma général (sans les include et tout ça) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
void fonction1 (int taille);
void fonction2 (tab);
int main (void)
{
int taille = 9;
fonction1 (taille);
fonction2 (tab);
return EXIT_SUCCESS;
}
void fonction1 (int taille)
{
int tab[taille], i;
for (i = 0; i < taille, i++)
{
tab[i] = i+1;
}
}
void fonction2 (tab)
{
(...)
} |
Voilà ce que ça donnerait schématiquement. J'ai mis en gras les zones du code qui me posent problème. En fait, l'élément qui me perturbe est la manière de retourner un tableau généré à partir d'une fonction (dans cet exemple, tab généré par fonction1), afin qu'une fonction que j'appelle ultérieurement à l'intérieur du main puisse y accéder et le modifier. De ce que j'ai compris de mes lectures sur le web, la solution est d'utiliser des pointeurs, mais là encore tout est confus dans ma tête : devrais-je créer un pointeur sur le tableau tab et le retourner ensuite, afin de pouvoir le glisser comme argument de fonction2 ? Ou bien est-ce que la démarche est complètement différente ?
Si quelqu'un pouvait me donner une piste à ce sujet, je lui en serais éternellement reconnaissant.
Cordialement