Delen via


Compilerfout C2229

type 'id' heeft een ongeldige matrix met een grootte van nul

Opmerkingen

Een lid van een structuur- of bitveld bevat een matrix met nulformaat die niet het laatste lid is.

Omdat u een matrix met nulgrootte kunt hebben als het laatste lid van de struct, moet u de grootte opgeven wanneer u de struct toewijst.

Als de matrix van nul niet het laatste lid van de struct is, kan de compiler de offset voor de resterende velden niet berekenen.

Example

In het volgende voorbeeld wordt C2229 gegenereerd:

// 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;
}