我想做类似的事情:
const int N = 10;
void foo (const int count)
{
int (* pA) [N][count] = reinterpret_cast<int(*)[N][count]>(new int[N * count]);
...
}
但是我的编译器(VS2010)不想这样做:
错误 C2057:预期
的常量表达式错误 C2540:非常量表达式作为数组绑定
他以这样的方式表达了他的不满count
。
我知道,如何通过实施稍微不同的方式来解决它。但我就是不明白,为什么C++ 禁止我使用这种方式。我明白,为什么 C++ 需要在编译时知道堆栈数组大小(以分配数组内存)。但是为什么对于指向数组的指针也需要同样的限制(毕竟,指针只是处理分配的内存的工具)?