社区
C++ 语言
帖子详情
console/vc++6 char *p = new char[64];为什么看不内存泄露?
luwenguang
2003-09-24 10:34:14
int main(int argc, char ** argv)
{
char * p = new char[64];
if(p == 0)
{
return 1;
}
return 0;
}
在vc++6中,在调试窗口怎么看不到内存泄露?
...全文
154
18
打赏
收藏
console/vc++6 char *p = new char[64];为什么看不内存泄露?
int main(int argc, char ** argv) { char * p = new char[64]; if(p == 0) { return 1; } return 0; } 在vc++6中,在调试窗口怎么看不到内存泄露?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luwenguang
2003-09-28
打赏
举报
回复
回复人: 1cs1ak1(菜得不能再菜) ( ) 信誉:100 2003-09-26 20:08:00 得分:0
"程序退出,内存由Windows回收了,所以你看不到"
是吗?
那是不是我们都不用释放内存,等着系统来释放啊。
>>
如果你不释放,并且程序运行时间长,new 的堆内存多,如果系统资源不足。
程序会死机。
luwenguang
2003-09-28
打赏
举报
回复
回复人: panzhaoping(潘赵平) ( ) 信誉:100 2003-09-26 12:56:00 得分:0
’程序自己最后会帮你DELETE掉的‘
不会的,你一定要用delete 因为这是在heap上开辟的
空间,程序无法自己释放。
>>
进程结束后,系统要回收系统资源。
luwenguang
2003-09-28
打赏
举报
回复
回复人: DaNiao(鸿雁) ( ) 信誉:104 2003-09-26 13:09:00 得分:0
是这样的MFC里有一个宏来打开内存泄露检查
但我想不起是什么了,你可以去MSDN查一下)
你自己写的控制台程序因为没有打开检查功能,所以VC就不检查了
你可以写个MFC的程序式一下,因为在MFC的一大堆头文件里有一个包含了这个宏
所以它就会为你检查了
>>
我觉得你说的最有道理了。
进程结束后,系统会回收 进程资源,这点没有怀疑。
panzhaoping
2003-09-26
打赏
举报
回复
’程序自己最后会帮你DELETE掉的‘
不会的,你一定要用delete 因为这是在heap上开辟的
空间,程序无法自己释放。
gernal_dn
2003-09-26
打赏
举报
回复
win32的进程有4G的内存空间,物理内存不够了,系统会自动建立虚拟内存,没有特别的例外化,系统在进程退出后总是能回收所有内存的;
但是,在进程退出前,如果老是这样,只分配不回收,长时间(特别是在服务器上)运行,进程会崩溃的。
yangchaobj
2003-09-26
打赏
举报
回复
Windows有内存保护机制,Windows回自己释放进程的所有资源。
但是否完全释放掉new出的内存,各个windows版本有什么区别,都是未知数。
因此,还是自己留意。
在VC中,侦测内存泄漏需要打开一个选项或激活一个宏定义。
1cs1ak1
2003-09-26
打赏
举报
回复
"程序退出,内存由Windows回收了,所以你看不到"
是吗?
那是不是我们都不用释放内存,等着系统来释放啊。
Jinhao
2003-09-26
打赏
举报
回复
如果程序不退出,系统肯定不会回收,这样,如果无休止的出现内存泄露,你的内存就会一点一点地被吞掉的
Jinhao
2003-09-26
打赏
举报
回复
如果程序不退出,系统肯定不会回收,这样,你的内存就会一点一点的没吞掉
xzygod
2003-09-26
打赏
举报
回复
to Jinhao(辣子鸡丁)
进程退出,系统会回收内存,要是不退出呢?那些地址空间用完就没了
DaNiao
2003-09-26
打赏
举报
回复
是这样的MFC里有一个宏来打开内存泄露检查
(但我想不起是什么了,你可以去MSDN查一下)
你自己写的控制台程序因为没有打开检查功能,所以VC就不检查了
你可以写个MFC的程序式一下,因为在MFC的一大堆头文件里有一个包含了这个宏
所以它就会为你检查了
Jinhao
2003-09-26
打赏
举报
回复
程序退出,内存由Windows回收了,所以你看不到了
void fun()
{
char * p = new char[64];
}
int main(int argc, char ** argv)
{
fun();
getchar();
return 0;
}
langzi8818
2003-09-25
打赏
举报
回复
程序自己最后会帮你DELETE掉的
luwenguang
2003-09-25
打赏
举报
回复
UP
luwenguang
2003-09-24
打赏
举报
回复
我知道要delete。
tonybaobao
2003-09-24
打赏
举报
回复
bcb发现了又怎么样呢?你只要知道new完之后应该delete就好了。
luwenguang
2003-09-24
打赏
举报
回复
can bcb IDE ?
xzygod
2003-09-24
打赏
举报
回复
vc可不保证一定能发现内存泄漏
JavaScript - 精通
Console
课程目标: 此课程为对
Console
对象的精讲课程,对
Console
对象的...
Console
对象虽然被所有人熟知,但是它内置了很多的其他的方法并不为开发者熟知,本套教程,就围绕
Console
对象,把它的所有内容依次展现在所有人面前。
c语言笔试题总结
为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出...
C语言面试题大汇总之华为面试题
为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出...
Visual
C++
内存泄漏检测工具(VLD)
1、什么是
内存泄露
(Memory Leak) 由于疏忽或者错误(异常安全)导致程序未能释放已经不再使用的内存的情况。内存泄漏并非是指内存在物理上的消失,而是指程序失去了对该内存的控制,导致的资源浪费。 2 、内存...
c++
面试题
相同点:它们都可用于申请动态内存和释放内存。 区别:1)malloc与free是
C++
/C语言的标准库函数,
new
/delete是
C++
的运算符。 2)
New
和delete会调用构造函数和析构函数,所以在创建对象时不能使用malloc和free。 2....
C++ 语言
64,642
社区成员
250,474
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章