Cómo inicializar una estructura con un miembro de matriz flexible
Tengo la siguiente estructura
typedef struct _person {
int age;
char sex;
char name[];
}person;
He realizado algunas búsquedas básicas en Internet (pero no he tenido éxito) sobre cómo crear una instancia e inicializar una estructura con un miembro de matriz flexible sin usarmalloc()
.
Por ejemplo: para estructuras normales como
struct a {
int age;
int sex;
};
Podemos crear una instancia destruct a
e inicialízalo como
struct a p1 = {10, 'm'};
Pero para estructuras con matriz flexible (como_person
como se mencionó anteriormente) ¿cómo podemos crear una instancia e inicializar como lo hacemos para @ normastructures
?
¿Es posible? Si es así, ¿cómo pasamos el tamaño de la matriz durante la inicialización y el valor real a inicializar?
(o
Es cierto que la única forma de crear una estructura con matriz flexible es usarmalloc()
como se menciona en la especificación C99 -6.7.2.1 Structure and union specifiers - point #17
?!