int* array = new int[N]; delete array 还是delete []array
时间: 2023-12-18 21:04:31 浏览: 176
c++语言,new和delete
在使用 new 运算符动态分配内存后,如果要释放这块内存,就需要使用 delete 运算符。但是,对于动态分配的数组,我们需要使用 delete[] 运算符来释放内存,而不是使用 delete 运算符。原因是,与 new[] 运算符相对应,delete[] 运算符可以正确地释放数组所占用的内存,包括数组中所有元素的内存,而 delete 运算符只会释放指向数组中第一个元素的指针所占用的内存,而不会释放数组中所有元素的内存。
因此,在使用 new[] 运算符分配数组内存时,应该使用 delete[] 运算符来释放内存,例如:
```cpp
int* array = new int[N];
// 使用数组
delete[] array; // 释放数组内存
```
需要注意的是,如果在使用 new[] 运算符分配数组内存时,使用了 delete 运算符来释放内存,会导致未定义的行为,可能会导致程序崩溃或内存泄漏等问题。因此,一定要注意使用正确的释放内存的方法。
阅读全文