为什么我的程序退出的时候会“当”响一声? 最近写了一个程序,工作基本正常,但就是退出的时候会“当”的响一声,就是出现警告对话框时的那种声音,但并未出现出错提示,程序正常退出了,debug和release版本都这样,why? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看在debug下内存泄漏情况吧 我想也是内存泄漏的问题,在debug下怎么看呀? 我也遇到过这种情况,是因为内存泄漏方面的问题,一运行到free(m_patoms);就退出了。 F5 从头到尾运行一遍。output 的地方 会报告出内存泄漏的。如果不行,装一个boundchecker 试试 debug模式运行,VC的Debug窗口中显示memory leak的信息,然后跟踪具体如何跟踪好好读MSDN吧,很复杂的。不过一般memory leak都是由于自定义类构造实例时数据成员使用new,而类实例的析构时没有delete数据成员所占用的空间因此特别要检查代码中new的实例是否都delete了,析构函数中是否把new的成员都delete了 具体是这样的,我是在创建一个CTreeCtrl,树的结点是一个目录的所有目录和文件,在创建树的时候,同时创建了一个单向链表,把树的所有结点都串了起来,代码如下第一句出现泄漏pNode = new TREENODE[1];//TREENODE是自定义的一个结构体,此句出现泄漏pNode->pPre = pCur;pCur = pNode;pNode->bIsDirector = bIsDirectory;pNode->strName = strFileName;pNode->strPath = strFilePath;pNode->hTreeItem = InsertItem(pNode->strName,hRoot);pNode = NULL;然后在这个类的析构函数中释放资源,代码如下, TREENODE * pNode = pHead; while(pHead) { pNode = pHead; delete pNode; pHead = pHead->pPre; } delete pHead;请帮我看一下,问题出在什么地方 pNode = pHead;delete pNode; 以后 pHead还有指向可用的地址吗?pHead = pHead->pPre;??? 跟踪其实并不难只要你清楚的知道,自己的程序运行到那一步该是什么。F10 F11 shift+F10 ctrl+F10够了 如何使用MSDN(2005)查找API使用例子 来来来,请教个对话框创建问题? 有人用PREP程序么? 有关ActivX控件的问题? 关于串口编程 急求关于图象格式的转换!!!!!本人愿意将所有的分做为报酬!! 请问VC是否是开发视频MPEG的首选工具? VC下更改窗口标题急问 CToolTipCtrl如何根据不同操作显示不同字符串 我在单文档中使用CEDITVIEW, 如何能使其改变其的底色, 以及文字的颜色。 如何判断现在软驱里是否有软盘 毕业了,升级了,找工作ing,散分保平安
第一句出现泄漏
pNode = new TREENODE[1];//TREENODE是自定义的一个结构体,此句出现泄漏
pNode->pPre = pCur;
pCur = pNode;
pNode->bIsDirector = bIsDirectory;
pNode->strName = strFileName;
pNode->strPath = strFilePath;
pNode->hTreeItem = InsertItem(pNode->strName,hRoot);
pNode = NULL;
然后在这个类的析构函数中释放资源,代码如下,
TREENODE * pNode = pHead;
while(pHead)
{
pNode = pHead;
delete pNode;
pHead = pHead->pPre;
}
delete pHead;
请帮我看一下,问题出在什么地方
delete pNode; 以后
pHead还有指向可用的地址吗?pHead = pHead->pPre;???
只要你清楚的知道,自己的程序运行到那一步该是什么。
F10 F11 shift+F10 ctrl+F10
够了