内存泄漏

ttlb 2003-08-21 03:19:24
C++Primer第六章TextQuery示例中有下面一段
for (int ix = 0; ix < elem_cnt; ++ix)
{
string textword = (*text_words)[ ix ];
// exclusion strategies
// less than 3 character or in exclusion set
if (textword.size() < 3 || exclusion_set.count(textword))
continue;
if (! word_map->count((*text_words)[ix]))
{ // not present, add it:
loc *ploc = new vector<location>;
ploc->push_back((*text_locs)[ix]);
word_map->insert(value_type((*text_words)[ix], ploc));
}
else (*word_map)[(*text_words)[ix]]->push_back((*text_locs)[ix]);
}
loc *ploc = new vector<location>;有内存泄漏,而且嵌在for循环中。
请问该如何解决?最好有代码示例,我是初学者。
...全文
23 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttlb 2003-08-21
  • 打赏
  • 举报
回复
原来是这样,多谢。
rtdb 2003-08-21
  • 打赏
  • 举报
回复
为什么说人家有内存泄漏?

ploc不是被插入到word_map中了么?
所以这里不可以在这里删除。


它应在word_map析构时(或者删除元素时)再释放。
chon81 2003-08-21
  • 打赏
  • 举报
回复
用delete释放内存
ttlb 2003-08-21
  • 打赏
  • 举报
回复
up

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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