INFO: C2466 Error When Allocating an Array of Length 0 (87015)
The information in this article applies to:
- Microsoft Visual C++ for Windows, 16-bit edition 1.0
- Microsoft Visual C++ for Windows, 16-bit edition 1.5
- Microsoft Visual C++ for Windows, 16-bit edition 1.51
- Microsoft Visual C++ for Windows, 16-bit edition 1.52
- Microsoft Visual C++, 32-bit Editions 1.0
This article was previously published under Q87015 SUMMARY
When you use Microsoft C/C++, the constant expression that you use to
allocate or declare an array must be an integral type greater than zero. If
not, the following error will occur:
C2466: Cannot allocate an array of constant size 0
The following examples are some ways this error can occur:
int *p = new X[0]; // error
C *aC = new [int_var] C; // error
int a[0]; // error
int func(char *[0]); // error
NOTE: This does not apply to Visual C++, 32-bit Edition, version 2.0 and
later.
If you use the Microsoft extensions (/Ze), an array declaration with a zero
subscript is legal for a class, structure, or union member. For more
information about valid zero-sized arrays, search the Visual C++ online
documentation for the topic "Unsized Arrays."
Modification Type: | Major | Last Reviewed: | 10/24/2003 |
---|
Keywords: | kbCompiler kbCPPonly kberrmsg kbinfo KB87015 |
---|
|