Quiero declarar todas las variables en mi programa de C en tiempo de compilación, como por ejemplo:tamaño máximo de BSS y datos
char cache[CACHE_SIZE];
char udp_ring[MAX_UDP_PACKET_SIZE*MAX_REQUESTS];
int num_packets;
char error_codes[NUM_ERRORS][MAX_ERROR_STRING]= {
{"Unknown user\n"},
{"Wrong password\n"},
....
};
La pregunta es, ¿hay límites en el tamaño de las variables en un programa C cuando van en BSS o segmento de DATOS? Por ejemplo, si declaro CACHE_SIZE de 8 GB de RAM, ¿funcionará? ¿Hay alguna diferencia para 32 bits o 64 bits? Planeo ejecutar el programa en Linux y no habrá restricciones en mi configuración de RLIMIT_DATA.
"Quiero declarar todas las variables en mi programa C en el momento de la compilación", por lo que hay una manera de declararlas en tiempo de ejecución? –
sí, pero no quiero vincular con glibc, entonces debo evitar malloc() – Nulik
** suspiro ** - declarar una variable no es lo que piensas que es. No puede declarar una variable en tiempo de ejecución. Ve a buscar un libro C. –