内存分配的问题
一段代码有这句什么意思?
double**Val1=new double*[row];
运行下面的代码出错,
这个是一个矩阵运算的程序,这里分配内存,别人写的,很滥!
整个代码如下:
realloc(unsigned int row, unsigned int col)
{
if(row==RowSize&&col==ColSize)
{
Row=RowSize;
Col=ColSize;
return;
}
double**Val1=new double*[row];
for(unsigned int i=0;i<row;i++)
{
Val1[i]=new double[col];
}
unsigned int ColSize=min(Col,col)*sizeof(double);
unsigned int minRow=min(Row,row);
for(i=0;i<minRow;i++)
{
memcpy(Val1[i],Val[i],ColSize);//到这句出错了!
}
for(i=0;i<RowSize;i++)
{
delete[] Val[i];
}
delete[]Val;
RowSize=Row=row;
ColSize=Col=col;
Val=Val1;
return;
}