Hola,
estoy practicando con struct en C y tengo algunas dudas de principiante. He realizado este pequeño código para entenderlo, pero aún así tengo algunos problemas.
1.- Por un lado parece que struct se asemeja "prehistóricamente" a lo que serían las clases y las variables de struct los objetos. No sé si alguien que conozca la historia de la programación puede confirmar esto.
2.- Entiendo que en las estructuras anidadas que he puesto en el código, tienes que acceder a cualquier miembro desde la instancia o mejor dicho variable superior que anida las demás. ¿No tendría sentido acceder desde datos[i].edad?
3.- Con las dos maneras que pongo a continuación el compilador da warnings -con la primera error-. ¿Cómo debo hacerlo? ¿O es que no es correcto este acceso palmera.datos[1].nombre?
palmera.datos[1].nombre = "Pablo");
strcpy (palmera.datos[1].nombre, "Pablo");
5.- tNino datos [5]; significa que no podré crear más de cinco alumnos de pero en realidad se puede. ¿A qué se debe?
Gracias.
Código:
/*System header files*/
#include <stdio.h>
#include <stdlib.h>
/*Symbolic constants*/
#define NUM_MAX 5
/*User defined types*/
typedef struct{
char nombre[NUM_MAX];
int ano;
int edad;
} tNino;
typedef struct{
int id;
tNino datos [5];
} tAlumnos;
tAlumnos palmera;
int main (void)
{
printf("Hola Mundo\n");
//palmera.datos[1].nombre = "Pablo");
strcpy (palmera.datos[1].nombre, "Pablo");
palmera.datos[1].ano = 2000;
palmera.datos[1].edad = 10;
return 0;
}
ERROR "warnings" que da el compilador.
gcc -Wall -c "struct.c" (en el directorio: /home/luis/Descargas)
struct.c:27: warning: implicit declaration of function ‘strcpy’
struct.c:27: warning: implicit declaration of function ‘strcpy’
La compilación a terminado con éxito.