delete p3;与 delete [] p3有什么不同?
时间: 2024-03-19 17:38:02 浏览: 47
C++中malloc与free、new与delete的详解与应用
delete p3; 用于释放单个对象的内存,而 delete [] p3; 用于释放数组对象的内存。
具体区别如下:
- delete p3;:用于释放通过 new 关键字创建的单个对象的内存。它会调用对象的析构函数,并释放对象占用的内存空间。
- delete [] p3;:用于释放通过 new[] 关键字创建数组对象的内存。它会按照数组元素的顺序调用每个元素的析构函数,并释放整个数组占用的内存空间。
需要注意的是,如果使用 delete [] p3; 释放单个对象的内存,或者使用 delete p3; 释放数组对象的内存,都会导致未定义的行为,可能会引发内存泄漏或其他错误。
阅读全文