C++变量的释放问题

jtg98g3 2010-05-19 02:25:22
int place=0;
for(place=0;place<StrToInt(Edit1->Text);place++){
Application->ProcessMessages();
TStrings *Tmp=new TStringList();
SearchData();
char *TempChar;
TempChar=(char *)malloc(sizeof(char*)*place);
SenderData();

}

请问我这样操作,那Tmp和TempChar是否会被自动释放?我观察了一下,发现程序内存不断的增加。但是我只需要一按程序的那个最小化按钮,那么程序内存立即减小。我想这应该是算自动释放。但为什么不最小化的时候,等了很久内存都没有自动释放?
有个问题,有时候我这样使用变量。只是刚刚定义了,但是没有创建成功。那么我该如何判断该实例能否调用free析够方法?
...全文
462 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
gucunlin 2010-05-27
  • 打赏
  • 举报
回复
屋子打扫了,留着墙角。该 delete 该 free 一个都不能少
我认为习惯很不好
「已注销」 2010-05-26
  • 打赏
  • 举报
回复
回收的不干净还不如不回收呢?
jtg98g3 2010-05-25
  • 打赏
  • 举报
回复
如果你释放一个没有malloc或者没有new的对象,那么会产生异常,如果你用tra来捕捉异常并不处理,那么在程序退出的时候异常依然会产生.我就碰到这样的问题.如果重复释放,同样也有这样的问题.
tulipcaicai 2010-05-21
  • 打赏
  • 举报
回复
学习啦,我总是忘记释放new出来的东东
rachelshao 2010-05-21
  • 打赏
  • 举报
回复
new 出来的变量用 delete释放:
if(Tmp) //这样可以防止重复释放
{
delete Tmp;
Tmp = NULL;
}
new 出来的数组用delete[]

malloc用free
if(TempChar)
{
free(TempChar);
TempChar = NULL;
}
zou1881 2010-05-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 rachelshao 的回复:]
new 出来的变量用 delete释放:
if(Tmp) //这样可以防止重复释放
{
delete Tmp;
Tmp = NULL;
}
new 出来的数组用delete[]

malloc用free
if(TempChar)
{
free(TempChar);
TempChar = NULL;
}
[/Quote]
请问重复释放会有什么结果?
1cctv 2010-05-21
  • 打赏
  • 举报
回复
听说是new出来的 对象数组 才用delete[]。
sue3140 2010-05-21
  • 打赏
  • 举报
回复
今天刚学到的。。。
new出来的数组 要delete [] 释放 哎。。
big mistake
我不懂电脑 2010-05-20
  • 打赏
  • 举报
回复
肯定没有自动释放,new用delete,malloc用free。
需要自动释放的话用智能指针。
bigfog 2010-05-20
  • 打赏
  • 举报
回复
没有被释放,应该手动释放.
ccrun.com 2010-05-19
  • 打赏
  • 举报
回复
new出来的对象,最好是用delete回收
new出来的数组,用delete []

至于malloc,是C中的分配内存空间,对应的回收用free
lirg8405 2010-05-19
  • 打赏
  • 举报
回复
都不会自动释放,new 和 malloc都是在堆中申请内在,需要程序员自己释放,有可能在程序结束的时候,系统会自动回收,但是不一定,所以自己申请的内存要自己释放
davidhuxin 2010-05-19
  • 打赏
  • 举报
回复
STUDY
davidhuxin 2010-05-19
  • 打赏
  • 举报
回复
不错的
周药师 2010-05-19
  • 打赏
  • 举报
回复
delete []p
无人理你 2010-05-19
  • 打赏
  • 举报
回复
int *p;
p=new int int[100];
用这个delete []p释放还是这个free(p)
周药师 2010-05-19
  • 打赏
  • 举报
回复
malloc的不要用delete

malloc仅仅分配内存,free仅仅回收内存
new 初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数


kaiserlew 2010-05-19
  • 打赏
  • 举报
回复
if(Tmp) delete Tmp;

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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