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:
ERROR "warnings" que da el compilador./*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; }
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.