结构体里面的内存回收问题

愤怒的菜鸟_ 2016-02-28 10:17:12
加精
定义这样一个结构体

struct dataform {
int time;
string name;
char oddeven;
double * object;
};
std::vector<dataform> CandidateQuery;

想请问这样的内存该怎么回收?
...全文
2289 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
versatts 2017-06-08
  • 打赏
  • 举报
回复
如果你的dataform里的object是New的,就写一个~dataform(),在里面delete它。
versatts 2017-06-08
  • 打赏
  • 举报
回复
CandidateQuery.clear(); 即可
kerwin liu 2017-04-06
  • 打赏
  • 举报
回复
引用 7楼赵4老师 的回复:
string是对象,不是一段内存。不适合放在结构体中。
个人觉的放里面也没关系,string在堆上开辟了一段内存
muzi_li90 2016-03-06
  • 打赏
  • 举报
回复
学习一下。。。。
trytry1992 2016-03-04
  • 打赏
  • 举报
回复
STL容器清空,去看effective STL第17条还是19条
Poopaye 2016-03-04
  • 打赏
  • 举报
回复
std::vector<dataform*> CandidateQuery;
把分全给哥 2016-03-03
  • 打赏
  • 举报
回复
引用 16 楼 qq1134993111 的回复:
使用智能指针
大神,你在说什么
HaoYuan 2016-03-03
  • 打赏
  • 举报
回复
使用智能指针
hdshappy 2016-03-02
  • 打赏
  • 举报
回复
真是太好了真是太好了
forget0915 2016-03-01
  • 打赏
  • 举报
回复
下断点进去调,看汇编代码及内存窗口,这样印象和理解深刻得多。空说概念没啥意义。
Heart09 2016-03-01
  • 打赏
  • 举报
回复
如果不写析构函数的话,只能一个一个释放。 其实析构函数只是做到了自动的一个一个释放。 就是说,你怎么new的,就怎么给delete掉!
止戈uuu 2016-03-01
  • 打赏
  • 举报
回复
循环释放掉Vector里的内存就可以了
yshuise 2016-02-29
  • 打赏
  • 举报
回复
string不是对象,而是一个typedef
愤怒的菜鸟_ 2016-02-29
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
string是对象,不是一段内存。不适合放在结构体中。
好的,谢谢
愤怒的菜鸟_ 2016-02-29
  • 打赏
  • 举报
回复
引用 8 楼 starytx 的回复:
[quote=引用 5 楼 q328590076 的回复:] 我后面申请了这样一个变量
std::vector<dataform> CandidateQuery;
我就是想问怎么把CandidateQuery的内存释放掉?
vector里边的东西无需自己处理内存释放问题,除非你结构体里边的那个指针object指向了new的内存,那么要释放的话就是循环每一个vector元素,然后delete object就行了[/quote] 谢谢
starytx 2016-02-29
  • 打赏
  • 举报
回复
引用 5 楼 q328590076 的回复:
我后面申请了这样一个变量
std::vector<dataform> CandidateQuery;

我就是想问怎么把CandidateQuery的内存释放掉?
vector里边的东西无需自己处理内存释放问题,除非你结构体里边的那个指针object指向了new的内存,那么要释放的话就是循环每一个vector元素,然后delete object就行了
赵4老师 2016-02-29
  • 打赏
  • 举报
回复
string是对象,不是一段内存。不适合放在结构体中。
yshuise 2016-02-28
  • 打赏
  • 举报
回复
如果是new 那么全部for循环,delete
paschen 版主 2016-02-28
  • 打赏
  • 举报
回复
给这个结构体加上一个析构函数
yshuise 2016-02-28
  • 打赏
  • 举报
回复
你难道不知道栈是自动析构吗? 堆才是手动
加载更多回复(3)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧