【发布时间】:2014-07-02 23:07:34
【问题描述】:
我试图理解为什么我们必须在 C++ 中使用 new 运算符。我写了一个小程序:
int N;
std::cin >> N;
int tab[N];
for (int i = 0; i < N; i++)
tab[i] = i + 1;
for (int i = 0; i < N; i++)
std::cout << "tab[" << i << "] = " << tab[i] << std::endl;
这个程序可以正常工作。我在 C 中使用此算法(而不是 malloc() 函数)注意到的相同行为。
【问题讨论】:
-
用更大的 N 试试。比如说 1 亿...
-
嗯...这个网站的名字说明了一切
-
@Brian 确实不是。这个问题是关于可变长度数组的 - 链接的副本不是。
-
@sepp2k 啊哈,没听懂。我会投票重新开放。
-
在大多数您编写的 C++ 代码中,您根本不会(也可能不应该)使用
operator new。这并不意味着动态分配是不必要的,远非如此。有时您不知道需要多少内存。有时您需要的超出堆栈允许的范围。有时您需要在函数调用之间保持分配。
标签: c++ new-operator