社区
C语言
帖子详情
new 和 delete 的一个问题
polosheng
2002-08-16 06:09:12
今天看到个这么个东东: 有个类的实例(不是new的),不要的时候就delete掉了,不知为什么可以这样用.delete不是只能与new搭配使用吗.注:程序编译通过,运行正常.
请教大家了,谢谢
...全文
68
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
打赏
举报
回复
有嗎﹖這樣肯定倒閉。
C++入门——
new
和
delete
C语言内存管理方式在C++中可以继续使用,但有些地方就无能为力,而且使用起来比较麻烦,因此C++又提出了自己的内存管理方式:通过
new
和
delete
操作符进行动态内存管理。对自定义类型A
new
和 malloc最大区别是
new
对于【自定义类型】除了开空间还会调用构造函数
delete
和free最大区别是
delete
对于【自定义类型】除了释放空间还会调用析构函数class Apublic:: _a(a)~A()private:int _a;int main()//动态申请。
C++
new
和
delete
的使用
文章目录C++
new
和
delete
1. 使用
new
动态分配和初始化对象2. 内存耗尽3.释放动态内存3.1 指针值和
delete
3.2
delete
之后重置指针值 C++
new
和
delete
在C++中, 通过
new
和
delete
管理动态内存.
new
: 在动态内存中为对象分配空间并返回
一个
指向该对象的指针
delete
: 接受
一个
动态对象的指针, 销毁该对象, 并释放与之关联的内存 1. 使用
new
动态分配和初始化对象 在堆中分配的内存是无名的, 因此
new
无法为其分配的对象命名, 而
重载
new
和
delete
运算符
重载
new
和
delete
运算符不同于其他类型的运算符重载,程序中重载了
new
运算符的同时也必须重载
delete
运算符。同时对于重载
new
和
delete
运算符的函数的参数也是有要求的,
new
运算符函数的第1个参数必须是size_t(C++标准库定义类型,等同于unsigned类型),而且其返回值必须是void*。
delete
运算符重载函数的参数必须是void*,当然还可以有其他参数。 例如,实现
一个
D
new
、
delete
和malloc、free详解与混用
问题
以前看到的资料都说,
new
和
delete
、
new
[]和
delete
[]、malloc和free,必须配套使用,不应该混用。 然而我最近遇到一些相关的
问题
,因此不得不探究一下,混用了会怎么样呢? 其实要想知道能不能混用,
问题
在于:他们有什么区别? 其实很简单: malloc只负责分配内存,free只负责释放内存。
new
在分配内存的同时,还会调用构造函数;
delete
在释放内存的同时还会调用析构函...
c++
new
和
delete
详解
其中,T是任意类型名,p是类型为T*的指针,N代表“元素个数”,可以是任何值为正整数的表达式,表达式中可以包含变量、函数调用等。此种内存分配是在程序运行中进行的,而不是在编译时就确定的,因此称为“动态内存分配”。但是在实际的编程中,往往会出现所需的内存空间大小取决于实际要处理的数据多少,而实际要处理的数据数量在编程时无法确定的情况。在C++中,这两个函数仍然可以使用,但是C++又新增了两个关键字,
new
和
delete
new
用来动态分配内存,
delete
用来释放内存。...
C语言
70,037
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章