为什么内存会无限增长

binlinshan 2004-04-30 04:25:50
我建立了一个TIMER
在里面进行程序处理
但是我发现进程的内存不停的在增长
怎么办,进程中用到的对象我都用Close()或者Release()
最后又设为NULL了还是不行阿
这是为什么.
...全文
78 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
test2002 2004-05-02
  • 打赏
  • 举报
回复
应该是有些对象本身由于你是堆申请而不会自动释放内存,这个工作必须你去做,
看以下伪码

p=(CObject_t*)malloc(10000,sizeof(CObject_t);

。。。。


你可能以为只要做了以下工作就认为释放了内存
free((CObject*)p);

但实际上由于对象是你通过堆申请的,
所以在你使用free之前,
你必须:
for(int i=0;i<10000;i++)
{
p[i].Clear();

}

这个Clear(),一般是不用调用的,但堆申请,所以你必须自己调用把对象内存释放。
当然这里只是举例,不一定是Clear,按实际情况而定


打雷啦的专栏 2004-05-02
  • 打赏
  • 举报
回复
我也还没搞清 delete free 等概念
B2China 2004-05-02
  • 打赏
  • 举报
回复
问题表达不清楚,无能为力。
shaker 2004-04-30
  • 打赏
  • 举报
回复
close和release不代表就释放了内存对象
nik_Amis 2004-04-30
  • 打赏
  • 举报
回复
up
lhj0532 2004-04-30
  • 打赏
  • 举报
回复
估计有地方内存泄漏了,看看有没有new了以后,没有delete
icanfeeling 2004-04-30
  • 打赏
  • 举报
回复
讲得不清楚……
lifeship 2004-04-30
  • 打赏
  • 举报
回复
timer處理函數裡面,內存不要使用動態分配的,使用靜態得
文飞扬 2004-04-30
  • 打赏
  • 举报
回复
你表达不清楚!!

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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