我刚开始时是这样直接定义一维动态数组的int a[n];一运行就出错说a的size不能为0;我就想到应该给a分配空就像我们定义一个固定数组a[10];一样系统会自动帮a分配空间;
int n;
scanf("%d",&n);
int *ch=(int*)malloc(sizeof(int*)*n);
for(int i=0;i<n;i++)
scanf("%d",&ch[i]);
printf("%d",ch[n-1]);
free(ch);
上面的代码就定义了一维动态数组并输出数组最后一个值。
但是我不明白int *ch=(int*)malloc(sizeof(int*)*n);只是分配空间而已怎么ch就成了一个数组了;
int n;
scanf("%d",&n);
int *ch=(int*)malloc(sizeof(int*)*n);
for(int i=0;i<n;i++)
scanf("%d",&ch[i]);
printf("%d",ch[n-1]);
free(ch);
上面的代码就定义了一维动态数组并输出数组最后一个值。
但是我不明白int *ch=(int*)malloc(sizeof(int*)*n);只是分配空间而已怎么ch就成了一个数组了;