¿Cómo puedo inicializar una estructura si un campo de la estructura es en sí misma una estructura?С inicialización de estructura
Gracias.
¿Cómo puedo inicializar una estructura si un campo de la estructura es en sí misma una estructura?С inicialización de estructura
Gracias.
Necesita usar más llaves (en realidad, son opcionales, pero GCC hace una advertencia en estos días). He aquí un ejemplo:
struct s1 { int a; int b; };
struct s2 { int c; struct s1 s; };
struct s2 my_s2 = { 5, { 6, 3 } };
struct A
{
int n;
}
struct B
{
A a;
} b;
Puede inicializar n con la siguiente instrucción. Es esto lo que estás buscando.
b.a.n = 10;
En los términos utilizados para definir el lenguaje, es decir un ejemplo de * asignación * en lugar de * inicialización *. En este contexto, un inicializador se usa solo en la declaración de un objeto. – Clifford
puede inicializar una estructura si un campo en la estructura es en sí misma una estructura
struct add{
int house;
char road;
};
struct emp{
int phone;
struct add a;
};
struct emp e = { 123456, 23, "abc"};
printf("%d %d %c",e.phone,e.a.house,e.a.road);
Opcional en donde member's' está completamente inicializado (es decir, todos los miembros), es necesario si solo desea inicializar parcialmente la estructura. – Clifford
En C99 puede usar la siguiente notación que es más fácil de mantener y leer: 'struct s2 my_s2 = {.c = 5, .s = {.a = 6, .b = 3}};' –