VC内存释放的一个非常奇怪的问题
在VC编程中,遇到一个非常奇怪的问题:在视类中----delete----- 文档类中的成员对象时,文档类的该对象无法删除,且文档类中其它成员竟然发生莫名其妙的变化,请高手支招。示例性代码可如下所示:
CTestDoc *pDoc = GetDocument();
ASSERT_VALID(pDoc);
delete [] pDoc->Vec1;
[ 本帖最后由 springxxc 于 2009-1-8 01:50 编辑 ]
VC内存释放的一个非常奇怪的问题
在VC编程中,遇到一个非常奇怪的问题:在视类中----delete----- 文档类中的成员对象时,文档类的该对象无法删除,且文档类中其它成员竟然发生莫名其妙的变化,请高手支招。示例性代码可如下所示:
CTestDoc *pDoc = GetDocument();
ASSERT_VALID(pDoc);
delete [] pDoc->Vec1;
[ 本帖最后由 springxxc 于 2009-1-8 01:49 编辑 ] pDoc对象中的Vec1是你自己声明的数组么?如果不是,根本不需要你去释放。如果是,建议使用
delete [] (pDoc -> Vec1);
. 另外,你还需要检查一下,是否其它指针型成员和该成员共享了相同空间?这样的话,你释放了内存就造成其它成员被悬挂。这个可能是最根本的。
页:
[1]