我是个刚接触VC的新手,我的系统是WindowsXP(SP1)安装了VC6.0++
但写完代码,一调试就出错,提示:"0x73d31351"指令引用的"0x000000004"内存。该内存
不能为"read"。要终止程序,请单击“确定”。请高手指点,多谢了

解决方案 »

  1.   

    用调用栈看看错在什么位置。
    0x04错误有可能是继承自CObject的对象被清零导致调用虚析构方法时非法访问。
      

  2.   

    ……0x04错误……什么话……引用0x04的地址显然可以用多种方法引发譬如
    int* ip = (int*)0x04;
    *ip = 1;
    这个就可以引发一个类似的错误
    如果任何程序都是这样的话,肯定是VC++版本的问题
      

  3.   

    to newbiestar()
    所以我说“可能”。不会有人实现你写的方法,野指针出现0x00000004的概率很小。
    如果调试出错而Release正常,很可能就是某个*d.dll损坏。
      

  4.   

    那么类似于这个的呢?void func(void)
    {
      int ip[1];
      p[2] = 4;
    }你敢保证这种缓冲区溢出错误不存在?