社区
C语言
帖子详情
new 和 delete 的一个问题
polosheng
2002-08-16 06:09:12
今天看到个这么个东东: 有个类的实例(不是new的),不要的时候就delete掉了,不知为什么可以这样用.delete不是只能与new搭配使用吗.注:程序编译通过,运行正常.
请教大家了,谢谢
...全文
84
10
打赏
收藏
new 和 delete 的一个问题
今天看到个这么个东东: 有个类的实例(不是new的),不要的时候就delete掉了,不知为什么可以这样用.delete不是只能与new搭配使用吗.注:程序编译通过,运行正常. 请教大家了,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
n5
2002-08-16
打赏
举报
回复
new/delete, new[]/delete[], malloc()/free() 必须配对使用。编译器是无法捕捉到混合使用的错误的,但这样的错误导致的后果很难说,可能是崩溃。
没见到过用delete不用new的情况,请把源码贴出来看看。
weihere
2002-08-16
打赏
举报
回复
把帖子贴出来看看
kingsoft111
2002-08-16
打赏
举报
回复
agree kof99th
new 和free
malloc 和delete
是对应的
最好不要混用
kof99th
2002-08-16
打赏
举报
回复
delete会调用析构函数,而free不会,所以new和free,malloc和delete混用会有问题,最好把源码贴出来,在看看是什么问题。
原则上,new和delete要配对。
julyclyde
2002-08-16
打赏
举报
回复
不是new的也可以delete?
new的都在堆里,而直接声明的变量在堆栈里,是不是有点……?
kwok_1980
2002-08-16
打赏
举报
回复
可能它初始化的时候就用了new了!而析构函数没有调用delete呢!
又或没有析构函数!
最好你把源代码贴出来!这样才能明白!
netbian
2002-08-16
打赏
举报
回复
用delete可以删除指针
Yssss1980
2002-08-16
打赏
举报
回复
delete 只能删除指针
还有不是new的,可以是malloc或CreateObject\动态创建的
源码呢?
1127
2002-08-16
打赏
举报
回复
是这样的呀!!
这个是一个内存分配的问题也就是说你可以在内存的堆区的分配就可以用new在关delete关就可以了!!
sandrowjw
2002-08-16
打赏
举报
回复
有嗎﹖這樣肯定倒閉。
遗留
一个
关于自定义operator
new
和operator
delete
的
问题
本文探讨了C++中自定义全局
new
/
delete
运算符的
问题
,并通过示例代码展示了如何重载这些运算符,以及在不同场景下它们的行为差异。
重载
new
和
delete
本文介绍了C++中重载
new
和
delete
的原因,包括为了解决内存碎片和性能
问题
。详细阐述了
new
和
delete
的工作原理,并探讨了不同形式的
new
和
delete
表达式。此外,讨论了重载
new
和
delete
作为成员函数和全局函数的注意事项,以及如何通过添加参数来实现更灵活的内存管理。最后,通过
一个
实战示例展示了在实际编程中可能出现的
问题
和挑战。
C++中
delete
和
delete
[]的深层区别
本文深入探讨了C++中
delete
和
delete
[]的区别,特别是它们在处理
new
[]分配的资源时的不同。虽然教科书指出
new
[]应与
delete
[]配对使用,但在某些特定情况下,使用
delete
释放
new
[]分配的内存可能不会立即引发
问题
。关键在于,
new
[]是否需要存储元素数量以及对象是否需要析构。对于没有析构函数的类型或基本类型,
new
[]可能不存储元素数量,此时
delete
和
delete
[]的行为相似。然而,对于有析构函数的对象,
delete
[]会根据预先保存的元素数量调用析构函数,而
delete
只会处理第
一个
元素。错误使用可能导致内存泄漏或程序崩溃。因此,理解这些差异对于避免潜在的编程陷阱至关重要。
c++中
new
和
delete
,
delete
[]的匹配
问题
(转载)
本文探讨了C++中 scalar 和 vector
new
与
delete
的匹配
问题
,解释了如何通过
new
[]操作符分配的内存需要使用
delete
[]进行释放,反之亦然。如果匹配不当,可能导致额外的析构调用或内存泄漏。文章还介绍了Microsoft C++编译器的内存管理细节,以及在删除包含多个元素的数组时,如何正确地执行析构和内存释放。此外,文章指出,当删除只有
一个
元素的数组时,
delete
和
delete
[] 没有区别,但删除非空地址两次是危险的。
C++中
delete
和
delete
[]的区别
本文详细介绍了C++中
new
和
delete
操作符的正确使用方法,特别是
new
[]与
delete
[]的区别。通过示例程序展示了当使用
delete
而非
delete
[]来释放数组时,仅数组的第
一个
元素会调用析构函数的
问题
。
C语言
70,037
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章