社区
C++ 语言
帖子详情
在析构函数里可以用delete释放动态分配的内存吗?
南京短暂的春天
2009-05-01 03:14:30
我在类A内部有new动态分配了内存,存储另外一种类B的一些对象,然后把这些对象pushu-back到了vector里。
现在类A操作完了(当然类B的对象也不需要用了),想释放掉分配的内存,可以在析构函数里用delete释放吗?
...全文
381
13
打赏
收藏
在析构函数里可以用delete释放动态分配的内存吗?
我在类A内部有new动态分配了内存,存储另外一种类B的一些对象,然后把这些对象pushu-back到了vector里。 现在类A操作完了(当然类B的对象也不需要用了),想释放掉分配的内存,可以在析构函数里用delete释放吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
光宇广贞
2009-05-01
打赏
举报
回复
不仅可以,而且必须
Legend258
2009-05-01
打赏
举报
回复
显然可以
辛鹤
2009-05-01
打赏
举报
回复
可以
mengde007
2009-05-01
打赏
举报
回复
修改一下:
vector<t_point>::iterator ite;
for(ite=data.begin();ite!=data.end();ite++)
delete ite;
lori227
2009-05-01
打赏
举报
回复
delete BST->data[i];
南京短暂的春天
2009-05-01
打赏
举报
回复
现在还有个问题。
vector<t_point> data;
///////////////////////////////////////////////////////////
for(int j=0;i<8;i++)
{
t_point *pi=new t_point(XX,XX,XX);
data.push_back(*pi);
}
之前用这样的方式操作了8次
现在要释放内存。怎么操作?
for(int i=(BST->data.size())-1;i>=0;i--)
{
delete &(BST->data[i]);
}
这样来释放可以吗?
mengde007
2009-05-01
打赏
举报
回复
如果是这样的话;那么可以直接delete了;
南京短暂的春天
2009-05-01
打赏
举报
回复
[Quote=引用 1 楼 mengde007 的回复:]
要看vector以后还要用这些数据吗,什么样的数据;是指针类型的吗;楼组在详细点;
[/Quote]
不要用了,是一维数组数据。
lingyin55
2009-05-01
打赏
举报
回复
可以啊,当类的生命周期结束之后,就是在析构函数里面执行析构的。
[Quote=引用楼主 dcmilan 的帖子:]
我在类A内部有new动态分配了内存,存储另外一种类B的一些对象,然后把这些对象pushu-back到了vector里。
现在类A操作完了(当然类B的对象也不需要用了),想释放掉分配的内存,可以在析构函数里用delete释放吗?
[/Quote]
pengzhixi
2009-05-01
打赏
举报
回复
是的,在A的析构函数里面delete释放,这样在vector调用remove或者析构时就会调用A的析构函数.
南京短暂的春天
2009-05-01
打赏
举报
回复
往往往往
珍惜生命远离CPP
2009-05-01
打赏
举报
回复
可以.
mengde007
2009-05-01
打赏
举报
回复
要看vector以后还要用这些数据吗,什么样的数据;是指针类型的吗;楼组在详细点;
C++中new和
delete
创建对象的流程?
在C++
里
,new和
delete
用于
动态分配
和
释放
内存
。使用new创建对象,先分配
内存
,再构造对象,最后返回指针;
delete
销毁对象,先调用
析构函数
,再
释放
内存
。对于对象数组,new[]和
delete
[]流程类似,只是要对每个对象操作。
C++中管理动态
内存
:
析构函数
中的`
delete
`使用指南
本文聚焦C++编程中动态
内存
管理。介绍在
析构函数
里
用
delete
释放
动态分配
资源,涵盖
释放
动态成员、动态数组的方法。还提及防止重复
释放
和野指针,将指针置为nullptr,以及禁止默认拷贝构造和赋值运算符,确保程序稳定安全。
C++ new和
delete
动态分配
和
释放
内存
本文详细介绍了C++中new和
delete
运算符的使用方法及注意事项,包括如何
动态分配
和
释放
内存
,以及不当使用可能导致的问题。
new与
delete
动态分配
和
释放
内存
本文详细介绍了C++中new运算符的使用,包括
动态分配
单个对象、数组以及带初始化的对象。同时,讲解了
delete
运算符如何
释放
由new分配的
内存
,包括单个对象和数组的
释放
。通过示例代码展示了动态
内存
管理在实际编程中的应用。
c++中
delete
和
析构函数
之间的区别
本文介绍了C++中
delete
的作用,它用于
释放
new在堆中动态生成的对象空间,
释放
时会自动调用类的
析构函数
以
释放
类内部
动态分配
的资源,随后
释放
整个对象所占
内存
。还给出示例代码,并说明了
delete
this在
析构函数
和成员函数中使用的不同情况及问题。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章