Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/12/2010, 11:33
Avatar de Munire
Munire
 
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Problema de principiante con struct en C

Cita:
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.
algo se asemeja, pero no es lo mismo. por ejemplo en las clases puedes meter funciones pero en las estructuras no.

Cita:
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?
no, por que datos esta dentro de "palmera"
esta bien como lo has puesto en el codigo

Cita:
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"); MAL. no se puede hacer asi. tienes que hacerlo copiando letra a letra: palmera.datos[1].nombre[i]
o con la funcion strcpy()

strcpy (palmera.datos[1].nombre, "Pablo"); BIEN, la razon de por que no te funcionaba te la ha dicho sam90



Cita:
5.- tNino datos [5]; significa que no podré crear más de cinco alumnos de pero en realidad se puede. ¿A qué se debe?
tNino datos [5]; significa que has creado 5 estructuras llamadas datos del tipo tNino (con unas variables especificas). si pones tNino datos [6]; creas 6.

tAlumnos palmera; significa que has creado una estructura llamada palmera del tipo tAlumnos. dentro de esa estructura hay un entero "id" y 5 estructuras "datos"