Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
type 'identifier' a un tableau de taille zéro non conforme
Remarques
Un membre d’une structure ou d’un champ de bits contient un tableau de taille zéro qui n’est pas le dernier membre.
Étant donné que vous pouvez avoir un tableau de taille zéro comme dernier membre du struct, vous devez spécifier sa taille lorsque vous allouez le struct.
Si le tableau de taille zéro n’est pas le dernier membre du struct, le compilateur ne peut pas calculer le décalage pour les champs restants.
Example
L’exemple suivant génère l’erreur 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;
}