社区
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中,在调试窗口怎么看不到内存泄露?
...全文
183
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可不保证一定能发现内存泄漏
V
C++
6.0培训教程
2. 内存泄漏检测:了解内存泄漏的危害,以及如何预防和检测内存泄漏。 3. 异常处理:学习try、catch和throw关键字,编写健壮的异常处理代码。 **七、调试与优化** 1. 调试工具:利用V
C++
6.0的调试器进行断点设置、...
cjson使用例子,在vc6.0编译通过
5. `cJSON_Delete()`: 释放CJSON结构体,避免内存泄漏。 **三、CJSON在VC6.0中的编译** 1. **获取源码**: 首先,你需要从CJSON的官方仓库或者第三方网站下载源代码。 2. **配置项目**: 在VC6.0中创建一个新的Win32 ...
C++
面试题2
为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的...
c语言笔试题总结
为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出...
C语言面试题大汇总之华为面试题
为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。 可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错. 4、请写出下列代码的输出...
C++ 语言
65,209
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章