请问这里有内存泄露吗?高分求救!!!!

IceWall 2003-02-16 06:13:15
Teacher *m_poPerson;
for(i=0;i<20;i++)
{
m_poPerson=(Teacher *)IMif->GetOne(i);
Sblno=m_poCurFeature->GetSymbolNo();
}
delete m_poCurFeature;
...全文
51 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Richuen22 2003-02-16
  • 打赏
  • 举报
回复
不用new
m_poPerson=(Teacher *)IMif->GetOne(i);这句已将指针定位了。
IceWall 2003-02-16
  • 打赏
  • 举报
回复
实际这里的m_poPerson只是一临时变量,做代换用,需要new吗?是不要放到循环内部?
AlvaChin 2003-02-16
  • 打赏
  • 举报
回复
同上,没有进行new 就delete,不是内存泄漏,但是这种程序很危险。
Richuen22 2003-02-16
  • 打赏
  • 举报
回复
没有new就delete会有问题的!
把delete m_poCurFeature;删掉

ayi7456 2003-02-16
  • 打赏
  • 举报
回复
呕,我也学到一招,和和,有用有用
flyboy81 2003-02-16
  • 打赏
  • 举报
回复
存在内存泄露
m_poPerson=(Teacher *)IMif->GetOne(i); 此句不断的把指针m_poPerson指向一个新new的内存空间,而原来该指针就指向一个内存空间,在循环结束后,delete的只是最后一个new的空间。应该把m_poPerson改为一个存放指针的数组,在最后delete的时候也使用一个循环依次把这个数组每个单元所指的空间delete。


同意: mSample(苗苗菜)
lizmei001 2003-02-16
  • 打赏
  • 举报
回复
觉得你的delete用得不怎么好
应该在哪儿早请,就在哪释放

这么用的话,IMif->GetOne(i)以后用的话会有问题的
zswzwy 2003-02-16
  • 打赏
  • 举报
回复
在循环处定义的指针呀。
mSample 2003-02-16
  • 打赏
  • 举报
回复
你给分吗?你的程序里m_poPerson在循环外释放的内存,相当于只释放了一个(第20个),还有19个没释放!!!
ayi7456 2003-02-16
  • 打赏
  • 举报
回复
好象是没有吧。我平时写东西就是怎么写的,如果有的话就丑了
IceWall 2003-02-16
  • 打赏
  • 举报
回复
重写一次:
Teacher *m_poPerson;
for(i=0;i<20;i++)
{
m_poPerson=(Teacher *)IMif->GetOne(i);
Sblno=m_poPerson->GetSymbolNo();
}
delete m_poPerson;
IceWall 2003-02-16
  • 打赏
  • 举报
回复
oh,m_poCurFeature 应该是m_poPerson
Richuen22 2003-02-16
  • 打赏
  • 举报
回复
m_poCurFeature new了没有?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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