C++编写程序遇到二维数组指针作为形参在子函数中怎么引用,为什么会有非法间接引用?

2024-11-22 19:17:52
推荐回答(1个)
回答(1):

#include"stdio.h"
//你的定义中,p是一个指针(相当于一维数组),而不是一个数组的指针,
//所以取了取值后,再次取值是错误的

//得下面这样定义,p才是一个数组的指针(二维数组实际上是一个数组的数组)
int sawap(int (*p)[3],int rowsize,int linesize)

{

int i, j,sum=0,m;

for(i=0; i
for( j=0; j
{ m=*(*(p+i)+j);

printf("%d\n",m);

if(i==j )

{ printf(" %d %d %d\n",m,i,j);

sum=sum+m;

}

}

return sum;

}

void main()

{

int sum;

int a[3][3]= {{1,2,3},{4,5,6},{7,8,9}};

sum=sawap(a,3,3);

printf(" %d\n",sum);

}