问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

delete与 delete []区别

发布网友 发布时间:2022-04-19 12:32

我来回答

1个回答

热心网友 时间:2022-04-23 06:36

delete只会调用一次析构函数,而delete[]会调用每一个成员的析构函数。在More Effective C++中有更为详细的解释:“当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operator delete来释放内存。”delete与new配套,delete []与new []配套

MemTest *mTest1=new MemTest[10];

MemTest *mTest2=new MemTest;

Int *pInt1=new int [10];

Int *pInt2=new int;

delete[]pInt1; //-1-

delete[]pInt2; //-2-

delete[]mTest1;//-3-

delete[]mTest2;//-4-

在-4-处报错。

这就说明:对于内建简单数据类型,delete和delete[]功能是相同的。对于自定义的复杂数据类型,delete和delete[]不能互用。delete[]删除一个数组,delete删除一个指针。简单来说,用new分配的内存用delete删除;用new[]分配的内存用delete[]删除。delete[]会调用数组元素的析构函数。内部数据类型没有析构函数,所以问题不大。如果你在用delete时没用括号,delete就会认为指向的是单个对象,否则,它就会认为指向的是一个数组。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
whether...ornot必须搭配着用么? whether必须跟or not吗 z97主板与b85有什么区别? b85主板和z97的区别有哪些 z97和b85有什么区别? shuxpai锁了屏怎么办? AI软件在保存文件时,出现"0x01d93ff0"指令引用的“0x00000000”内存。该... AI文件保存时保存不了。无法以此文件名存储。请以其它名称或在其它文... 上海买衣服最实惠的地方再哪 在上海买衣服去哪好呢? delete语句是什么? delete语句怎么用 DELETE键的用法 键盘上的delete是什么意思 Delete是啥意思 DELETE是什么意思 delete键是什么意思? delete什么意思 弟弟三年级作页,要写读书卡,求大家帮下忙啊!!! 三年级读书卡有没有一本书的读书卡 英特尔 Pentium(奔腾)G2030 3.00GHz 双核,这款处理器怎么样?是什么档次的? 小学生读书卡片样本 小学三年级读书卡中的好词,好句,好段。 小学三年级读书卡怎样制作?(新课标人教版) 三年级读书卡要好词好句 三年级读书卡怎样制作 坚定的锡兵读书卡怎么做三年级 读书卡怎么写啊,三年级的,包括读后感,会给分的。 三年级城关小学汉中市老师说要做一张读书卡怎么做? 三年级《我爱阅读》读书卡的内容有哪些 Delete翻译 delete 和 delete 的区别 g2030处理器马来西亚制造到底是赛扬还是奔腾 g2030 这个cpu怎么样? 奔腾双核G2030这款CPU参数是什么? 视频号能看到浏览过的人吗? 请问怎么再看到视频号上浏览过的视频? 微信视频号怎么看浏览记录? Color是什么意思 color中文是什么意思? color是什么中文意思? color 是什么意思? Colour是什么意思? color和colour有什么区别 color什么意思 color用英语翻译是什么意思 colour和color是什么意思?如何翻译? color是什么意思? color这个英语单词什么意思? color 是什么意思????