指针型二维数组,赋值后相互干扰,求解
#include<stdio.h>#include<stdlib.h>
int main()
{
int *p,n,m,i,j,x,y;
printf("输入魔方的阶数:");
scanf("%d-%d",&n,&m);
p=(int *)malloc(sizeof(int)*n*m);
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
*(p+i+j)=0;
printf("%5d",*(p+i+j));
}
printf("\n");
}
x=0;
y=m/2;
*(p+x+y)=1;
printf("\n\n");
for(x=0;x<n;x++)
{
for(y=0;y<m;y++)
printf("%10d",*(p+x+y));
printf("\n");
}
return 0;
}
以上为代码
我输入的是3-3的数组,数组初始化全部赋予0,打印出来是这样子的
0 0 0
0 0 0
0 0 0
将*(p+0+1)=1后,我希望得到的是
0 1 0
0 0 0
0 0 0
但实际出来的是
0 1 0
1 0 0
0 0 0
请教大神,是哪里出了问题?
[此贴子已经被作者于2018-7-7 21:55编辑过]