有关STL中Vector的函数clear的问题

我定义了一个structtemp{charname[256];inti;}Vector<temp>vect;当对这个vect执行pushback一些temp的结构体后,执... 我定义了一个
struct temp
{
char name[256];
int i;
}
Vector<temp> vect;
当对这个vect执行pushback一些temp的结构体后,执行clear
这样是否会内存泄露?可以释放掉temp结构体中的name内存吗?
展开
 我来答
lamusicoscos
推荐于2016-02-11 · TA获得超过184个赞
知道答主
回答量:169
采纳率:0%
帮助的人:160万
展开全部
不行,clear只是把那些元素全部删除掉,并不是释放内存。
再者,你这样的定义容器是不需要释放内存的,如果你这样定义,std::vector <temp> *pVec。就需要了。先pVec->clear()再 pVec->swap( (std::vector <temp>)(*pVec) )。就能实现内存的释放。
mapoor
2008-12-17 · TA获得超过777个赞
知道小有建树答主
回答量:225
采纳率:100%
帮助的人:179万
展开全部
你好:

这是不可能 形成内存泄露的。。
因为你根本 没有进行 动态内存的申请。。(new 一个对象)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-12-18
展开全部
能的。

因为name是数组,不是动态释放的,它不需要主动再去释放一下。
因此:
Vector<temp> vect;

Vector<int> vect;
在内存释放方面,是一样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alaolao
2008-12-17 · TA获得超过794个赞
知道小有建树答主
回答量:1420
采纳率:0%
帮助的人:0
展开全部
不会出现内存泄漏.
正常释放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式