Para cada uma das sentenças abaixo, marque (V) para Verdadeiro ou (F) para Falso.
( ) A declaração int v[]; sem inicialização é válida em C.
( ) A declaração int v[]; sem inicialização é válida em C.
Passo 1
O enunciado pergunta se a declaração
int v[];
sem especificar tamanho e sem inicialização é válida em C.
O conteúdo envolvido é declaração de arrays em C, onde precisamos conhecer as regras de tipo incompleto e inferência de tamanho.
int v[];
sem especificar tamanho e sem inicialização é válida em C.
O conteúdo envolvido é declaração de arrays em C, onde precisamos conhecer as regras de tipo incompleto e inferência de tamanho.
Passo 2
Em C, toda declaração de array deve ou
- especificar um tamanho explícito, por exemplo
int v[10];
ou - fornecer um inicializador para que o compilador infira o tamanho, por exemplo
int v[] = {1, 2, 3};
Passo 3
Não basta o array ficar sem inicializador: declarar
int v[];
gera um tipo incompleto (array sem tamanho) sem vínculo extern, e isso não é permitido pelo padrão C. O compilador em geral reclama “array size missing in ‘v’”.
int v[];
gera um tipo incompleto (array sem tamanho) sem vínculo extern, e isso não é permitido pelo padrão C. O compilador em geral reclama “array size missing in ‘v’”.
Resposta
(F)