Si es un struct
entonces se puede hacer¿Cómo inicializar una unión?
*p = {var1, var2..};
Pero parece que esto no funciona con union
:
union Ptrlist
{
Ptrlist *next;
State *s;
};
Ptrlist *l;
l = allocate_space();
*l = {NULL};
sólo para obtener:
expected expression before ‘{’ token
tiene dos tipos de puntero en su unión. ¿cuál estás tratando de inicializar para nulo? ¿Cómo espera que el compilador (o este lector) lo sepa? –
@James Wilcox, sé que puedo hacerlo por 'u.field1 = NULL; u.field2 = NULL' pero ¿no es ese tipo de redundancia? – lexer
la pregunta es qué campo estás tratando de inicializar en el código anterior. ni yo ni el compilador tenemos idea de si se supone que es 'next' o' s' a lo que intenta acceder. –