Apenas curioso, o que realmente acontece se eu definir uma matriz de comprimento zero int array[0];
no código? O GCC não reclama de forma alguma.
Programa de amostra
#include <stdio.h>
int main() {
int arr[0];
return 0;
}
Esclarecimento
Na verdade, estou tentando descobrir se matrizes de comprimento zero inicializadas dessa maneira, em vez de serem apontadas como o comprimento variável nos comentários de Darhazer, são otimizadas ou não.
Isso ocorre porque eu tenho que liberar algum código para a natureza, então estou tentando descobrir se devo lidar com casos em que o SIZE
é definido como 0
, o que acontece em algum código com um estaticamente definidoint array[SIZE];
Fiquei realmente surpreso que o GCC não reclame, o que levou à minha pergunta. Das respostas que recebi, acredito que a falta de um aviso se deve em grande parte ao suporte ao código antigo que não foi atualizado com a nova sintaxe [].
Como eu estava pensando principalmente no erro, estou rotulando a resposta de Lundin como correta (a de Nawaz foi a primeira, mas não tão completa) - os outros estavam apontando seu uso real para estruturas acolchoadas, embora relevantes, não são ' exatamente o que eu estava procurando.
[]
em Python ou mesmo ""
em C? Às vezes, você tem uma função ou macro que requer uma matriz, mas não possui dados para inserir nela.