petite question sur les pointeurs
Bonjour, alors voici ma question:
etant donné un entier m, je veux créer une fonction qui à partir de cet entier me renvoie un tableau de taille m passé en paramètre (de sortie). Pour cela j'utilise des pointeurs , mais deux possibilités me viennent en tête. quelle est la plus "propre" ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
int main()
{
int m = 10;
int* p = malloc(m*sizeof(int));
if (p == NULL)
{
printf("Memory allocation problem");
exit(0);
}
ma_fonction(m, p);
....
free(p);
return 0;
} |
avec
Code:
1 2 3 4 5 6 7 8
|
void ma_fonction(int m, int* p)
{
int i;
for(i = 0; i < m; i++)
*(p+i) = i ; //par exemple
} |
ou
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
int main()
{
int m = 10;
int* p;
ma_fonction(m, &p);
....
return 0;
} |
avec
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
void ma_fonction(int m, int** p)
{
*p = malloc(m*sizeof(int));
if (*p == NULL)
{
printf("Memory allocation problem");
exit(0);
}
int i;
for(i = 0; i < m; i++)
*(*p+i) = i ; //par exemple
} |
Merci d'avance pour votre réponse ! ;)