Debug Assertion Failed! 编程 错误 请高手帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/12 09:14:55
#ifndef matrix_h
#define matrix_h

class Matrix {

public:
Matrix();

Matrix (int, int);

~Matrix ();
int getrows ();
int getcols ();
int getelem (int, int );
void setelem (int, int, int );
void add (Matrix &);
void subtract (Matrix &);
bool equals (const Matrix&);

private:
int row;
int col;
int *ptr;

};

#endif
这是头文件;

#include <iostream>
using namespace std;

#include "Matrix.h"
#include <new>
#include <cassert>

Matrix::Matrix (int r, int c ) {
assert(r>=0);
assert(c>=0);
row=r;
col=c;

ptr=new int[row*col];
for(int i=0;i<row*col;i++)
ptr[i]=0;

}
Matrix::Matrix()
{

row=0;
col=0;
}

Matrix::~Matrix (){
delete[] ptr;
}

int Matr

断言失败是运行时错误。你跟进去看参数是不是传错了。

Matrix::Matrix (int r, int c ) {
assert(r>=0); // 这里错了
assert(c>=0); //或者这里错了
row=r;
col=c;

ptr=new int[row*col];
for(int i=0;i<row*col;i++)
ptr[i]=0;

}