kra*_*mir 2 c++ memory arrays allocation
例如,我有一个基于用户输入的动态大小的数组:
int n;
cin >> n;
int items[n];
Run Code Online (Sandbox Code Playgroud)
这个数组是在堆栈上分配的吗?或者它是否在堆上,如果我写了:
int n, *items;
cin >> n;
items = new int[n];
...
delete [] items;
Run Code Online (Sandbox Code Playgroud)
编辑:我理解第二个代码的作用.我问的是第一个代码是否与第二个代码完全相同,但行数较少.
你的第一个例子根本就没有使用动态数组 - 它使用的是堆栈分配的可变长度数组(通常在幕后相当于一个alloca调用,除了sizeof运算符),这是C99的一个特性,而不是C++.
当然,你的第二个数组是通过new分配在堆上的.
| 归档时间: |
|
| 查看次数: |
2093 次 |
| 最近记录: |