|

楼主 |
发表于 2015-6-1 07:24:25
|
显示全部楼层
本帖最后由 魔诀 于 2015-6-1 08:48 编辑
在MFC的View类头文件中声明 Matrix mmin, 构造函数中声明 mmin = Matrix(15, 10),然后调试跟踪。
Matrix::Matrix(int rows,int cols)
{
this->rows = rows;
this->cols = cols;
gridData = new int[rows*cols]; // 在这个地方没有问题,能完成内存分配
for (int i = 0; i <= rows; i++)
{
for (int j = 0; j <= cols; j++)
{
gridData[i*cols + j] = 0;
}
}
}
Matrix::Matrix()
{
gridData = nullptr;
}
Matrix& Matrix::operator=(const Matrix &D)
{
if (this == &D)
return *this;
this->rows = D.rows;
this->cols = D.cols;
delete[] gridData;
gridData = new int[rows*cols]; //运行到这个地方就会发生中断
for (int i = 0; i <= rows; i++)
{
for (int j = 0; j <= cols; j++)
{
this->gridData[i*cols + j] = D.gridData[i*cols + j];
}
}
return *this;
}
Matrix::~Matrix()
{
delete[] gridData;
}
这是什么原因?请帮忙看下。 |
|