Por curiosidad, ¿qué sucede realmente si defino una matriz de longitud cero int array[0];
en el código? GCC no se queja en absoluto.
Programa de muestra
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
Aclaración
Realmente estoy tratando de averiguar si las matrices de longitud cero inicializadas de esta manera, en lugar de señalarlas como la longitud variable en los comentarios de Darhazer, están optimizadas o no.
Esto se debe a que tengo que liberar algo de código en la naturaleza, así que estoy tratando de averiguar si tengo que manejar los casos en los que SIZE
se define como 0
, lo que sucede en algunos códigos con una definición estáticaint array[SIZE];
De hecho, me sorprendió que GCC no se quejara, lo que llevó a mi pregunta. De las respuestas que he recibido, creo que la falta de una advertencia se debe en gran medida al soporte de código antiguo que no se ha actualizado con la nueva sintaxis [].
Debido a que principalmente me preguntaba sobre el error, estoy etiquetando la respuesta de Lundin como correcta (la de Nawaz fue la primera, pero no fue tan completa); los otros señalaron su uso real para estructuras acolchadas con cola, aunque relevante, no es Es exactamente lo que estaba buscando.
[]
Python o incluso ""
de C? A veces, tienes una función o una macro que requiere una matriz, pero no tienes ningún dato para agregar.