定义的地方:
class CSomeClass
{
...
...
Image* m_pImg;
...
...
}
////////////////////////无异常构造的地方:
CSomeClass::CSomeClass()
{
m_pImg = NULL;
}
///////////////////////无异常使用的地方:
CSomeClass::SomeFunc()
{
m_pImg = .............//m_pImg的地址值为某值c.
..........m_pImg......
}
///////////////////////无异常析构的地方:
CSomeClass::~CSomeClass()
{
if ( NULL != m_pImg )
{
delete m_pImg;////////////////崩了,m_pImg的地址值没变(仍然是c),可是它指向的内存已经无法删除了。
m_pImg = NULL;
}
}////////////////高手们,指点指点,谢了//////////////////
class CSomeClass
{
...
...
Image* m_pImg;
...
...
}
////////////////////////无异常构造的地方:
CSomeClass::CSomeClass()
{
m_pImg = NULL;
}
///////////////////////无异常使用的地方:
CSomeClass::SomeFunc()
{
m_pImg = .............//m_pImg的地址值为某值c.
..........m_pImg......
}
///////////////////////无异常析构的地方:
CSomeClass::~CSomeClass()
{
if ( NULL != m_pImg )
{
delete m_pImg;////////////////崩了,m_pImg的地址值没变(仍然是c),可是它指向的内存已经无法删除了。
m_pImg = NULL;
}
}////////////////高手们,指点指点,谢了//////////////////
CSomeClass::SomeFunc()
{
m_pImg = .............//m_pImg的地址值为某值c.
..........m_pImg......
}
///////////////////////无异常
这里m_pImg=什么啊?
问题应该就在这个地方
这里你只是改变了一个m_pImg的值,如果没有new的话
析构函数中就不用delete
thinking....