【发布时间】:2014-07-09 15:52:09
【问题描述】:
我正在写一个程序,突然有一个疑问。 我有两种分配静态数组的方法。
int main ()
{
int a[10];
}
int main()
{
int N;
cin >> N; //assume i input N as 10
int a[N];
}
两种情况下的内存分配有何不同? 在第二种情况下会在运行时分配吗?
【问题讨论】:
-
标准 C++ 中不允许第二个版本。
-
或标准 C,就此而言
-
可以认为是 Does “int size = 10;” yield a constant expression? 的副本,简短摘要可变长度数组是有效的 C99,但不是有效的 C++,但它被多个编译器支持为 C++ 中的扩展。
-
吹毛求疵,这些数组都不是“静态的”。它们是“自动”的。
标签: c++ c arrays memory-management dynamic-arrays