编写一个函数,从标准输入读取一列整数,把这些值存储于一个动态分配的数
组中并返回这个数组。数组的第一个数是数组包含的值的个数,它的后面就是这些整数值。
#define MAXSIZE 3
int *getNum(int database[])
{
int i = 0; //计数变量
int j = 0;
int input; //存放每一次输入的数据
database = (int*)malloc(sizeof(int)*MAXSIZE); //为数组申请初始空间
if(!database){ //如果未申请到足够的空间
printf("cannot get enough memory/n");
exit(1);
}
printf("Please input numbers/n"); //输入整型数据,若输入合法并且不为'A'
while(scanf("%d", &input) && input != 'A'){
i++;
if(i > MAXSIZE - 1){
database = (int*)realloc(database, sizeof(int)*(i+1));
if(!database){ //如果未申请到足够的空间
printf("cannot get enough memory/n");
}
}
database[0] = i; //
database[i] = input;
}
while(j <= i){
printf("%d/t", database[j]);
j++;
}
return database;
}
int main()
{
int *data = NULL;
getNum(data);
return 0;
}