第1个回答 2014-11-20
动态分配,定义自行百度,下面是代码
int *a;int n;int i;
printf("please input value of n"); //input the number of arry a[]
a=(int *)malloc(sizeof(int)*n); //asign space or :a=(int *)relloc(sizeof(int),n)
if(a==0) exit(0); //asign fallen!return system
如果是char 把int 换成char 还要注意一点,初始化的时候,比如char *a;分配好了空间
最好用变量来赋值比如a[2]='a';如果scanf(“”)循环输入,不要在for循环里加任何提示语句,输入时也不要在每一个子符间加空格,这样会结果出错,原因还在探究中,int型就没事,最后要free(a);本回答被提问者和网友采纳
第2个回答 2014-11-20
c和c++的数组没办法这么用,当你采用自动分配内存的时候,你创建的实际上就是一个指针了。研究一个指针的长度是没有意义的,如果说你需要一个能够在某个方法中动态分配空间并且可以随时获取长度的类似数组的东西,请了解一下容器类,如vector,list等,在c和c++中,这些容器类才是使用的最广泛的。
第3个回答 2014-11-20
首先数组是固定长度的。不固定长度的是链表。
虽然C语言中可以用字符数组来代替字符串,但仍是不同概念,不能混用。
比如:字符串中仍以'\0'作为结束字符来判断数组是否结束(串终止)。
如果是其它类型,用户自定义结束符。