下面这段代码为什么是异常的
下面这段代码为什么是错误的?
#include <iostream.h>
struct Matrix
{
int **data;
int mu,nu;
};
Matrix *Creat()
{
Matrix *A=new Matrix;
int i,j;
cout < < "请输入行数: ";
cin> > A-> mu;
cout < < "请输入列数: ";
cin> > A-> nu;
A-> data=new *int[A-> mu]; //这里有错
for(i=0;i <=nu;i++) //这里也有错
A-> data[i]=new int[A-> nu];
cout < < "请输入每行每列的数据(按先行后列的顺序): " < <endl;
for(i=1;i <=A-> mu;i++)
{
cout < < "请输入第 " < <i < < "行: " < <endl;
for(j=1;j <=A-> nu;j++)
{
cout < < " 第 " < <j < < "列数据: ";
cin> > A-> data[i][j];
}
cout < <endl;
}
return A;
}
为什么这里用NEW进行动态分配二维数组空间的时候会报错?
谢谢大家!
------解决方案--------------------
A-> data=new *int[A-> mu]; //这里有错,改为 A-> data=new int*[A-> mu];
for(i=0;i <=nu;i++) //这里也有错,改为 for(i=0;i <=A-> nu;i++)
------解决方案--------------------
// A-> data=new *int[A-> mu];
A-> data=new int * [A-> mu];
// for(i=0;i <=nu;i++)
// A-> data[i]=new int[A-> nu];
for(i=0;i < A-> nu; i++)
A-> data[i]=new int[A-> nu];
#include <iostream.h>
struct Matrix
{
int **data;
int mu,nu;
};
Matrix *Creat()
{
Matrix *A=new Matrix;
int i,j;
cout < < "请输入行数: ";
cin> > A-> mu;
cout < < "请输入列数: ";
cin> > A-> nu;
A-> data=new *int[A-> mu]; //这里有错
for(i=0;i <=nu;i++) //这里也有错
A-> data[i]=new int[A-> nu];
cout < < "请输入每行每列的数据(按先行后列的顺序): " < <endl;
for(i=1;i <=A-> mu;i++)
{
cout < < "请输入第 " < <i < < "行: " < <endl;
for(j=1;j <=A-> nu;j++)
{
cout < < " 第 " < <j < < "列数据: ";
cin> > A-> data[i][j];
}
cout < <endl;
}
return A;
}
为什么这里用NEW进行动态分配二维数组空间的时候会报错?
谢谢大家!
------解决方案--------------------
A-> data=new *int[A-> mu]; //这里有错,改为 A-> data=new int*[A-> mu];
for(i=0;i <=nu;i++) //这里也有错,改为 for(i=0;i <=A-> nu;i++)
------解决方案--------------------
// A-> data=new *int[A-> mu];
A-> data=new int * [A-> mu];
// for(i=0;i <=nu;i++)
// A-> data[i]=new int[A-> nu];
for(i=0;i < A-> nu; i++)
A-> data[i]=new int[A-> nu];