<< actuall, that won't work either - need to
#define SIZE x
const int will only work when dynamically allocating the array, and then only on one dimension. >>
from the C++ ANSI schema ...
array declaration ...
<<
In a declaration T D where D has the form
D1 [constant-expressionopt]
and the type of the identifier in the declaration T D1 is "derived-
declarator-type-list T," then the type of the identifier of D is an
array type. T is called the array element type; this type shall not
be a reference type, the type void, a function type or an abstract
class type. If the constant-expression (_expr.const_) is present, it
shall be an integral constant expression and its value shall be
greater than zero. ...
>>
constant expression definition
<<
...
An integral constant-expression can involve only literals (_lex.lit-
eral_), enumerators, const variables or static data members of inte-
gral or enumeration types initialized with constant expressions
...
>>
with that in mind const int s = 5; is a constant expression, hence the array declaration int d is valid according to the ANSI C++ specs. I'm not event sure how you mixed in the "one dimension" component into this.