【发布时间】:2010-10-18 17:52:12
【问题描述】:
我已经使用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,如何在运行时确定大小?
只是为了仔细检查,我已经用谷歌搜索了一些和所有与我相似的代码都声称会给出存储大小错误。
甚至 Deitel 的 C++ 如何编程 p。常见编程错误 4.5 下的 261 个状态:
只有常量可以用来声明自动和静态数组的大小。
启发我。
【问题讨论】:
-
注意 DMA 的意思是“直接内存访问”——我想你是在问动态分配
-
C 还是 C++?选择一个。
-
再次,选择一个:C 或 C++。这个问题是明确的并且仅与C有关;不应有 C++ 标签。
标签: c++ c array-initialization