老生常谈,delete和delete[]的问题
发布网友
发布时间:2022-05-01 05:35
我来回答
共4个回答
热心网友
时间:2022-06-25 02:23
new和delete对应,new[]和delete[]对应,不能混用.我用的VC6,混用会导致程序崩溃.
链表明显是一个结点一个结点生成的,每个结点肯定都是new出来的,所以释放的时候也应该一个一个的delete
热心网友
时间:2022-06-25 02:23
effective c++里面是这个说法, 具体为什么好像他也没说
这里面有些事情是标准规定的,比如 new 对应 delete , new[]对应 delete[]。 但如果不这么做会是什么结果,也就是说标准之外的情况下的操作结果,应该是实现定义的。 也许有些实现可以delete[]一个new出来的东西,不过既然标准没说这个可以,那么另一个实现出于某种原因把这个搞砸也是正常的了。
如果确实有可能有些东西是new出来的, 看看能不能改用 new[1] ?
热心网友
时间:2022-06-25 02:24
如果是内建类型,char int long这种之类的
直接 delete就可以了
如果是自定义的类
必须是 delete []p;
热心网友
时间:2022-06-25 02:24
这个要对应的。。