BUSCAR
INICIO
MAPA
FAQs
UTILIDADES
GLOSARIO
REGISTRO
COLABORAR
QUIENES SOMOS

USUARIO

PASSWORD

FAQs
3.Estructuras, Uniones y Enums

3. Encontré por casualidad un código que declara una estructura de la siguiente manera:

struct name {
              int namelen;
              char namestr[1];
};

Y luego hacen una reserva de memoria extraña para hacer que namestr actúe como si tuviera varios elementos. ¿Esto es legal o portable?

Esta técnica es popular. Oficialmente se considera que esto no se ajusta al Estándar de C. Por lo tanto, no tiene porque ser portable.

Seguramente, si lo compilas en compiladores que comprueban la dimensión del array, obtendrás los correspondientes warnings y errores.

Otra posibilidad es declarar el array de tamaño variable muy grande, mejor que muy pequeño. No obstante, sigue sin cumplir el estándar.
.
.