动态数组与char *string有什么区别?
各位大虾:
本人初学C.已经学了快一个月了.始终在一个问题上绕圈子.
书上说用malloc来分配内存空间.可以解决编译未确定的变量空间问题.
可我在确感觉不到有什么优越性.
指针似乎就可以实现动态数组问题.
下面是书上的用malloc分配空间给数组.
int *array=NULL,num,i;
scanf("%d",&num);
array=(int *)malloc(sizeof(int)*num);
printf("input %d elements:",num);
for (i=0;i<num;i++) scanf("%d",&array[i]);
printf("%d elements are:",num);
for (i=0;i<num;i++) printf("%d,",array[i]);
printf("\b");
free(array);
而我不用malloc分配动态内存.直接用指针也照样能解决编译没确定的空间在小问题.
int *array,*address;
int i,num;
address=array;
scanf("%d",&num);
for (i=0;i<num;i++)
{
scanf("%d",array);
array++;
}
array=address;
for (i=0;i<num;i++)
{
printf("this n:%d\n",*array);
array++;
}
效果一模一样..我真的好疑惑.为什么要用malloc来解决..难道指针不是一样的么?
各位大侠99我...我卡在这里面了...