Declarar un array como variable global sin inicial
Publicado por Robert (1 intervención) el 26/12/2009 23:42:19
Hola amigos!
Bueno, antes de nada, mil gracias por las mil dudas que aquí he resuelto anónimamente, pero ahora ha llegado mi momento de preguntar.
Veréis, tengo un archivo en c, que cuenta con un array como variable global que almacena los estudiantes de una clase. La primera función de este fichero, es inicializarClase(int numero_estudiantes), o sea, pasando como dato el número de estudiantes de la clase.
Así pues, yo había pensado en crear un array de la estructura Estudiante (que tiene una longitud fija de 128 bytes), de forma que pueda acceder y guardar cada Estudiante en una posición del array. El problema reside en que este array ha de ser, a la fuerza, global, y supongo que en C no se puede declarar un array como global e inicializarlo posteriormente en una función. ¿O hay alguna forma?
En caso de que no la haya, la única posibilidad sería crearlo con punteros, pero luego debo recorrer la lista de Estudiantes, almacenarla en fichero y luego poder leer el fichero con una función leerEstudiante(numInicial, (char *) lista_estudiantes, numEstudiantes), es decir, que tengo que decir a partir de qué estudiante quiero empezar a leer, cuántos estudiantes leer, y devolverlo en el buffer lista_estudiantes.
A ver si alguien me puede dar una pistilla de por donde tirar...
Muchas gracias!!
Bueno, antes de nada, mil gracias por las mil dudas que aquí he resuelto anónimamente, pero ahora ha llegado mi momento de preguntar.
Veréis, tengo un archivo en c, que cuenta con un array como variable global que almacena los estudiantes de una clase. La primera función de este fichero, es inicializarClase(int numero_estudiantes), o sea, pasando como dato el número de estudiantes de la clase.
Así pues, yo había pensado en crear un array de la estructura Estudiante (que tiene una longitud fija de 128 bytes), de forma que pueda acceder y guardar cada Estudiante en una posición del array. El problema reside en que este array ha de ser, a la fuerza, global, y supongo que en C no se puede declarar un array como global e inicializarlo posteriormente en una función. ¿O hay alguna forma?
En caso de que no la haya, la única posibilidad sería crearlo con punteros, pero luego debo recorrer la lista de Estudiantes, almacenarla en fichero y luego poder leer el fichero con una función leerEstudiante(numInicial, (char *) lista_estudiantes, numEstudiantes), es decir, que tengo que decir a partir de qué estudiante quiero empezar a leer, cuántos estudiantes leer, y devolverlo en el buffer lista_estudiantes.
A ver si alguien me puede dar una pistilla de por donde tirar...
Muchas gracias!!
Valora esta pregunta


0