15/12/2010, 12:20
|
| | Fecha de Ingreso: octubre-2006
Mensajes: 169
Antigüedad: 18 años, 2 meses Puntos: 2 | |
Respuesta: Problema de principiante con struct en C El código completo es este
Código:
/*System header files*/
#include <stdio.h>
#include <stdlib.h>
#include <string.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 [2];
} tAlumnos;
tAlumnos palmera;
int main (void)
{
printf("Hola Mundo\n");
palmera.id = 0;
strcpy (palmera.datos[0].nombre, "Laura");
palmera.datos[0].ano = 2000;
palmera.datos[0].edad = 10;
printf("Los datos son: ID=%d Nombre=%s Año Nacimiento=%d y Edad=%d\n", palmera.id, palmera.datos[0].nombre, palmera.datos[0].ano, palmera.datos[0].edad);
/*PRUEBA*/
printf("Esto imprime el primer caracter de %s que es = %c\n", palmera.datos[0].nombre, palmera.datos[0].nombre[0]);
palmera.id = 1;
strcpy (palmera.datos[1].nombre, "Pablo");
palmera.datos[1].ano = 2003;
palmera.datos[1].edad = 8;
printf("Los datos son: ID=%d Nombre=%s Año Nacimiento=%d y Edad=%d\n", palmera.id, palmera.datos[1].nombre, palmera.datos[1].ano, palmera.datos[1].edad);
palmera.id = 2;
strcpy (palmera.datos[2].nombre, "Pili");
palmera.datos[2].ano = 1972;
palmera.datos[2].edad = 38;
printf("Los datos son: ID=%d Nombre=%s Año Nacimiento=%d y Edad=%d\n", palmera.id, palmera.datos[2].nombre, palmera.datos[2].ano, palmera.datos[2].edad);
palmera.id = 3;
strcpy (palmera.datos[3].nombre, "Lorenzo");
palmera.datos[3].ano = 1968;
palmera.datos[3].edad = 42;
printf("Los datos son: ID=%d Nombre=%s Año Nacimiento=%d y Edad=%d\n", palmera.id, palmera.datos[3].nombre, palmera.datos[3].ano, palmera.datos[3].edad);
palmera.id = 14;
strcpy (palmera.datos[14].nombre, "Lorenzo");
palmera.datos[14].ano = 1968;
palmera.datos[14].edad = 42;
printf("Los datos son: ID=%d Nombre=%s Año Nacimiento=%d y Edad=%d\n", palmera.id, palmera.datos[14].nombre, palmera.datos[14].ano, palmera.datos[14].edad);
return 0;
}
Y funciona todo OK. No entiendo que "instanciando" más de 2 datos de palmera lo acepte sin error.
Gracias. |