C++中Delete用法:请问int *p=new int(5); 此时delete的形式是delete []p还是delete p;
答案:4 悬赏:70
解决时间 2021-02-13 11:57
- 提问者网友:挣扎重来
- 2021-02-13 06:59
C++中Delete用法:请问int *p=new int(5); 此时delete的形式是delete []p还是delete p;
最佳答案
- 二级知识专家网友:桑稚给你看
- 2021-02-13 08:26
delete p;
这个p并不是指向一个数组。*p就是那个5
这个p并不是指向一个数组。*p就是那个5
全部回答
- 1楼网友:颜值超标
- 2021-02-13 11:06
delete []p;
因为你的 p 是作为一个指针 指向一片连续的内存的第一个空间,如果你用 delete p;它就只会释放 p 指向的当前空间,也就是这块内存的第一个空间,而后面的空间都没有被释放,delete []p这个就是把这一整块连续内存释放掉,
- 2楼网友:闲懒诗人
- 2021-02-13 09:53
辨析,int* data = new int[5]; // 这个表示数组有5个元素
int* data = new int(5); // 有何不同?这个表示*data = 5, 完全不一样
知道用哪个了吧。
- 3楼网友:开心就好
- 2021-02-13 08:48
new int(5)这里的5不是代表有5个元素的数组,而是表示动态分配一个int型内存,然后为其初始化为5,delete的形式是delete p。如果是new int[5],则表示分配一个有5个元素的数组对象,delete的话是delete []p。关于C++动态内存分配的内容可以看下鸡啄米博客的《鸡啄米:C++编程入门系列之三十一(数组、指针和字符串:动态内存分配和释放)》。希望可以帮到你。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯