当前位置: 代码迷 >> VC/MFC >> !MFC 0x00983ADE 处的第一机会错误(在XX中)0xC0000005: 读取位置 0xFDFDFDF8 时发生
  详细解决方案

!MFC 0x00983ADE 处的第一机会错误(在XX中)0xC0000005: 读取位置 0xFDFDFDF8 时发生

热度:321   发布时间:2016-05-02 03:43:01.0
求助!!!!,MFC 0x00983ADE 处的第一机会异常(在XX中)0xC0000005: 读取位置 0xFDFDFDF8 时发生
本人小菜鸟,最近在做一个基于对话框的小程序,有个关于类的头文件包含进来 构造时候就会出现这个错误 
MFC 0x00983ADE 处的第一机会异常(在XX(文件名)中)0xC0000005:  读取位置 0xFDFDFDF8 时发生访问冲突
这个类在编译器里面可以运行的 在VS2013的MFC项目就运行不了了 以下是出错代码
class matrix
{
private:
int row;//行数
int col;//列数

public: 
double** m_t;//存储二维动态数组
////////////////////////////////////////////////////////////////////
matrix(int a=1,int b=1)//构造函数
{  row=a;
   col=b;
       m_t=new double*[row];
       for(int i=0;i<row;i++)
       m_t[i]=new double[col];
       
       for(int m=0;m<row;m++)
      { for(int k=0;k<col;k++)
       m_t[m][k]=0;}
    ........................
}
是就是我matrix a(3,3)的时候就会出现问题 应该是这里的问题 
求助啊!!!!!!!!!!!!!!!
------解决思路----------------------
引用:
Quote: 引用:

这里没什么问题
错误虽然报在这里,也可能是其他地方导致的。报错的地方不一定就是出错的地方。



我没有添加其他代码 就是加了一行创建matrix类的一个对象时候程序就不行了
 ~matrix()//析构函数 
{ int i;
for(i=0;i<row;i++);
  delete []m_t[i];
delete []m_t ;
}
};


析构函数错了, for 语句后面多了个分号! delete [] m_t[i] 就不属于 for 循环里的语句了
------解决思路----------------------

matrix(int a=1,int b=1) : row(a),col(b)
{  
m_t=new double*[row];
memset(m_t,0,sizeof(double*)*row;
for(int i=0;i<row;i++)
{
m_t[i]=new double[col];
memset(m_t[i],0,sizeof(double)*col;
}
}

~matrix()//析构函数 

int i;
for(i=0;i<row;i++)
delete []m_t[i];
delete []m_t ;
}
  相关解决方案