Necesito hacer algo simple, que solía hacer muchas veces en Java, pero estoy atrapado en C (C puro, no C++). La situación se ve así:Inicializando un puntero en una función separada 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;
}
tengo alguna función "inicialización", que debe asignar un puntero, dados a algunos datos asignados (no importa). ¿Cómo debería dar un puntero a una función para que este puntero se modifique y luego se pueda utilizar más en el código (después de que vuelva la llamada a la función)?
alternativa (y mejor en mi humilde opinión) 'int * initArray (size_t s) {return malloc (sizeof (int) * s); } 'y luego usarlo como' int * arr = initArray (SIZE); ' –
Muchas gracias :) – pechenie
Chris, no debería, porque este ejemplo es poco natural. La función "initArray" en mi situación real devuelve un valor, por lo que no puedo usarlo. Pero gracias de todos modos :) – pechenie