Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O tipo 'identificador' tem uma matriz ilegal de tamanho zero
Observações
Um membro de uma estrutura ou campo de bits contém uma matriz de tamanho zero que não é o último membro.
Como você pode ter uma matriz de tamanho zero como o último membro da struct, você deve especificar seu tamanho ao alocar a struct.
Se a matriz de tamanho zero não for o último membro da struct, o compilador não poderá calcular o deslocamento para os campos restantes.
Example
O exemplo a seguir gera C2229:
// C2229.cpp
struct S {
int a[0]; // C2229 zero-sized array
int b[1];
};
struct S2 {
int a;
int b[0];
};
int main() {
// allocate 7 elements for b field
S2* s2 = (S2*)new int[sizeof(S2) + 7*sizeof(int)];
s2->b[6] = 100;
}