我是新来的C++编程,并不太能理解下面的代码差异:内存分配,C++
int n;
cin >> n;
int list[n];
和
int n;
cin >> n;
int *list = new int[n];
以及如何C++编译器的交易用这种代码?
编辑:请不要关于指针。我想知道如何在代码的第一个块中为“list”变量分配内存,因为“n”值是在运行时确定的。
可能重复:Why aren't variable-length arrays part of the C++ standard?
这肯定是重复的,无论如何,第一个版本在堆栈上分配矢量头和类数据,第二个在堆上做所有的事情(除了指针) – 2014-09-02 11:06:00
这个东西应该在前几章任何体面的C++书籍 - 你确实有一本体面的C++书籍,我希望? – 2014-09-02 11:06:34
我编辑了你的问题的标题,使它更适合于实际的问题。然而,我并没有把它写成“措辞完美”,因为我不想使用“指针”这样的词,这部分是答案。请检查新标题,并重新编辑它,看起来合适! – quetzalcoatl 2014-09-02 11:08:53