Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2010, 10:30
luface2000
 
Fecha de Ingreso: octubre-2006
Mensajes: 169
Antigüedad: 17 años, 6 meses
Puntos: 2
Problema de principiante con struct en C

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.

Última edición por luface2000; 15/12/2010 a las 11:14