首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

傻人问二个傻有关问题?

2012-02-03 
傻人问二个傻问题??第一个很简单,程序中我用new分配内存,如果不释放引起内存泄露。我想问,如果我new,没有de

傻人问二个傻问题??
第一个很简单,
程序中我用new   分配内存,如果不释放引起内存泄露。
我想问,如果我new   ,没有delete程序退出了,是不是还是没有回收分配的内存。

第二个问题,
如果我想在MFC中派生一些类用NEW   CLASS菜单,选折基本类时,有些类,里面是没有的,这样的话,是不是只能完全手动编写代码,如CMenu,CToolbar类都找不到。

[解决办法]
我认为你说的全对.
[解决办法]
1,退出时内存已回收,当然不是你收的。
2。你说的不太明白,理解成:在你新加入的view里创建菜单,然后你再用?反正如果你用你工程中的菜单、工具栏,在你新建的view里可以调用你那些东西。如果是我理解的那样,那你就自己加。
[解决办法]
第一个问题如果是指针变量,程序退出是不光要delete,还要将它指向NULL,
内存释放了,并不表示指针会消亡或者成为NULL指针。
[解决办法]
一、内存是会被收回的,但那是操作系统的功劳。
二、你可以尝试让它从CWnd继承下来,然后把新生成代码中的CWnd都换成CMenu啊,CToolBar啊就行了,注意要全部替换,我以前这么干过,没什么问题。
[解决办法]
楼上那样说的确是一种好的方法
但如果在此之前你用到过 CWnd呢
那不掺了
[解决办法]
第一个错误,第二个正确。window在程序干掉的时候会释放该进程空间,记录上未使用,学好操作系统对这些理解有好去。
[解决办法]
第一个错误.

内存泄露说的是当你的程序运行时频繁(不频繁当然也是泄漏,但是频繁调用更能说明问题)的调用有泄漏的代码会不断地消耗内存。

当程序结束后系统会自动释放你的程序使用的所有内存。

也就是说内存泄露是你的程序运行时给系统带了的问题,而不是后遗症!
[解决办法]
CMenu,CToolbar类都可以在MSDN中找到呀。第一点错误,程序推出了,操作系统会把给这个程序分配的内存都回收
[解决办法]
第一个问题你的理解是错误的,当程序的进程结束时,系统会自动回收你在堆中的内存,内存泄露自在程序运行过程中。

热点排行