在头文件中定义了一个私有成员参数
CDIB* m_pDIB;
也包含了应该包含的头文件。
编译可以通过,但是在.cpp的构造函数中调用
if(m_pDIB!=NULL)
delete m_pDIB;
就出错。在其他地方也是这样,只要调用这个参数就出错。求教

解决方案 »

  1.   

    在构造函数里初始化,m_pDIB=NULL;
    很有可能是因为你没用到这个变量,所有delete的时候会出错.
      

  2.   

    可能m_pDIB被编译器初始化成了0xCCCCCCCC或0xCDCDCDCD这种非零的无效值
      

  3.   

    2楼正确。
    声明一个指针类型后,首要注意的是一定要在初始化时先设置成NULL。
    还有,如果指针需要多次使用,删除后也要把指针设置成NULL。
      

  4.   

    你的指针定义后没有使其指向一个指定的地址,成了野指针,直接释放会崩溃 应该初始化为NULL 或者给其指定一个地址
      

  5.   

    凡是指针的new 和 delete,初始化时赋空,new之前在判断下,删除的时候判断,删完后在赋空
    保持良好的习惯就不会再碰见这个问题了。