我尝试编写一个简单的函数来连接两个2D双矩阵。
double** concat(double **upmat,double **lowmat,int row,int col,int filecount)
{
double **temp=new double* [filecount*row];
for(int i=0;i<row*filecount;i++){
temp[i]=new double [col];
}
if (filecount>1)
std::copy(upmat,upmat+(filecount-1)*row*col,temp);
std::copy(lowmat,lowmat+row*col,temp+(filecount-1)*row*col);
return temp;
}
此函数返回2D指针。当我尝试从该指针访问数据时,它显示无效的内存访问错误!!
答案 0 :(得分:0)
temp,low和high都是double**
(指向double的指针),但你执行std :: copy就好像它们是double*
(指向double的指针)。