new*_*mer 0 c++ memory dynamic new-operator
int d;
cin >> d;
int asdf[d];
Run Code Online (Sandbox Code Playgroud)
这被认为是动态内存分配吗?根据http://www.cplusplus.com/doc/tutorial/dynamic/,似乎我甚至不能编译它,因为不使用new运算符的数组只能声明为常量,也许我读错了.(我正在使用CodeBlocks和GNU CCC编译器)
它和之间的区别是什么?
int d;
int *asdf;
cin >> d;
asdf = new int[d];
Run Code Online (Sandbox Code Playgroud)
在删除之前,使用新生命创建的数组是唯一的区别,而第一个数组在离开范围后会立即释放吗?
int x[n];是一个可变长度数组(VLA),它具有自动存储持续时间(即"在堆栈上").它在C89或C++ 98/03中无效,但它是在C99中引入的,并且通常作为扩展提供,例如在GCC中.
在具有非标准alloca()功能的某些平台上也可以模仿该功能,该功能在VLA变得普遍之前使用.
| 归档时间: |
|
| 查看次数: |
310 次 |
| 最近记录: |