int * matrixsum(int *a,int *b,int n,int m)
{
int *p=NULL,i,j;
p=malloc(sizeof(int)*n*m);
if(p==NULL)
{
printf("Error!\n");
exit(1);
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
*(p+i*n+j)=*(a+i*n+j)+*(b+i*n+j);
}
}
return p;
}
我的问题是关于这条线*(p+i*n+j)=*(a+i*n+j)+*(b+i*n+j);
:如果我用它替换它,p[i][j]=a[i][j]+b[i][j];
我会收到以下错误 3 次:
错误:下标值既不是数组也不是指针也不是向量
为什么?据我所知,它们是一回事。
我的编译器是 gcc 版本 4.6.3。