本人小菜鸟,最近在做一个基于对话框的小程序,有个关于类的头文件包含进来 构造时候就会出现这个错误
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)的时候就会出现问题 应该是这里的问题
求助啊!!!!!!!!!!!!!!!
------解决思路----------------------
析构函数错了, 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 ;
}