11楼的真是C高手啊!
奋斗改变一切!!
我用malloc定义一个动态数组~
#include"stdio.h"
#include"malloc.h"
main()
{int i,j,n;
int *fangzhen;
printf("Input n:");
scanf("%d",&n);
fangzhen=(int*)malloc(n*n*2);
printf("Input fangzhen:");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&fangzhen[i][j])
}
为什么编译说scanf("%d",&fangzhen[i][j])是无效间接运算~而换成
scanf("%d",*(fangzhen+i)+j)就可以了~
但输出时用printf("%d",*(*(fangzhen+i)+j))就又说运算无效~
到底怎么用动态数组?
请注意看这一句,&fangzhen[i][j],这是值,如果换成"fangzhen[i][j]),就可以了,这样才是地址,看来楼主还应该看一下
指针那一章