Je dois faire une chose simple, ce que je faisais plusieurs fois en Java, mais je suis coincé en C (pur C, pas C++). La situation se présente comme suit:Initialisation d'un pointeur dans une fonction séparée en C
int *a;
void initArray(int *arr)
{
arr = malloc(sizeof(int) * SIZE);
}
int main()
{
initArray(a);
// a is NULL here! what to do?!
return 0;
}
J'ai une fonction « initialisation », qui doit attribuer un pointeur donné à certaines données affectées (n'a pas d'importance). Comment est-ce que je devrais donner un pointeur à une fonction afin que ce pointeur soit modifié, et puis puisse être employé plus loin dans le code (après que l'appel de fonction renvoie)?
Sinon (et mieux à mon humble avis) 'int * initArray (size_t s) {return malloc (sizeof (int) * s); } 'et ensuite l'utiliser comme int int * arr = initArray (SIZE);' –
Merci beaucoup :) – pechenie
Chris, je ne devrais pas, parce que cet exemple est une sorte de non naturel. La fonction "initArray" dans ma situation réelle renvoie une valeur, donc je ne peux pas l'utiliser. Mais merci quand même :) – pechenie