C++中Delete用法:请问int *p=new int(5); 此时delete的形式是delete []p还是delete p;

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中Delete用法:请问int *p=new int(5); 此时delete的形式是delete []p还是delete p;相关的知识,希望对你有一定的参考价值。

new int(5)这里的5不是代表有5个元素的数组,而是表示动态分配一个int型内存,然后为其初始化为5,delete的形式是delete p。如果是new int[5],则表示分配一个有5个元素的数组对象,delete的话是delete []p。关于C++动态内存分配的内容可以看下鸡啄米博客的《鸡啄米:C++编程入门系列之三十一(数组、指针和字符串:动态内存分配和释放)》。希望可以帮到你。 参考技术A 辨析,int* data = new int[5]; // 这个表示数组有5个元素
int* data = new int(5); // 有何不同?这个表示*data = 5, 完全不一样

知道用哪个了吧。
参考技术B delete p;
这个p并不是指向一个数组。*p就是那个5本回答被提问者采纳
参考技术C 如果int * p = new int[5] ;就用delete [] p , 是int *p=new int(5); 就用delete p ;

以上是关于C++中Delete用法:请问int *p=new int(5); 此时delete的形式是delete []p还是delete p;的主要内容,如果未能解决你的问题,请参考以下文章

c++中new和delete的用法

C++ new和delete运算符简介

C++中new的用法

C++ new和delete运算符

new 与delete

C++中运算符new和delete的功能分别是啥?