从键盘输入若干数据到数组中,可选用的方法:
-
预估最大数据个数,按此数值定义数组空间,完成数据输入
#define MAX_NUM 1000
int a[MAX_NUM]; 这种方法定义数组,方便,安全。缺陷是数组空间大小受系统限制,数据太多了,就不能这样定义了。
-
运行时,确定输入数据个数,采用指针动态定义数组,或C99提供的动态数组的方法实现
int *p;
int n; printf ("input n: "); scanf("%d", &n); //输入数据个数
(1)p=(int *)malloc(n*sizeof(int) ); //动态分配空间 不用了记得要释放free(p)
或
(2)int pa[n] ; //C99支持的动态数组,按n值动态定义数组
-
还可以采用指针动态扩充数组方法:先分配一定的大小,当数组不够用时,再重新分配空间。
#define INIT_LEN 100 预分配空间
#define INCE_LEN 10 每次扩充空间
int *p=(int *) malloc(INIT_LEN *sizeof(int) );
int length=INIT_LEN ;
不足时, length+=INCE_LEN ; p=(int *)realloc( p, length) ; //扩充空间