cannot allocate an array of constant size 0
An array is allocated or declared with size zero. The constant expression for the array size must be an integer greater than zero. An array declaration with a zero subscript is legal only for a class, structure, or union member and only with Microsoft extensions (/Ze).
Example
int *p = new X[0]; // error C *aC = new [int_var] C; // error int[0] // error