马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下面是我写的矩阵类里的一个成员函数,目的是消去矩阵里的一行,但是执行的时候发现很奇怪,程序最后在return matSubTemp这行直接跳过去了,没有执行,但是却能输出。而且按理说我将这个结果赋值给一个新的矩阵,中间应该把这个临时矩阵内存释放了,但是调试的时候发现没有析构,这是为什么?大神帮忙解释解释,看了大半天了Matrix Matrix::MatSubLine(int sub_line) //删除sub_line行
{ Matrix matSubTemp(matRow-1,matCol);
if(sub_line>matRow ||sub_line<1)
{
cerr<<"超出矩阵行范围"<<endl;
exit(0);
}
for(int i=sub_line;i<matRow;i++)
{
MatSwapLine(i,i+1); //将要删除的行换到矩阵最后一行并丢弃
}
for(int i=0;i<matSubTemp.matRow*matSubTemp.matCol;i++)
{
matSubTemp.pMatValue[i]=pMatValue[i];
}
return matSubTemp;
}
|