我已经使用C ++几年了,今天我看到了一些代码,但是这怎么完全合法呢?
int main(int argc, char **argv)
{
size_t size;
cin >> size;
int array[size];
for(size_t i = 0; i < size; i++)
{
array[i] = i;
cout << i << endl;
}
return 0;
}
在GCC下编译。
没有new
或malloc
如何在运行时确定大小?
只是仔细检查一下,我已经在Google上搜索了一些和所有与我类似的代码,声称它们会导致存储大小错误。
甚至Deitel的C ++如何编程p。常见编程错误4.5下的261个状态:
仅常量可用于声明自动和静态数组的大小。
开导我