我想从键盘上得到一些数字。但如何在没有array []的情况下存储该数字?我有机会这样做吗?我不确切知道有多少数字来自键盘。如果我有阵列的许可,那很简单。但是不允许使用数组。
答案 0 :(得分:0)
在您的情况下,我仍然使用数组,但如果您坚持使用指针,下面的代码将对您有所帮助。无论您是否需要数组或指针,您仍需要定义内存中可存储的元素数量的上限。
现在由您来修改代码,使其高效,完美地满足您的分配需求。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int numelements=10;
int curelement=0;
int* data=calloc(1,numelements*sizeof(int));
int* p=data;
int* res=data;
while (curelement < numelements){
scanf("%d",p);
if (*p==0){break;} //exit if number entered is zero.
p++;
curelement++;
}
//print results
while(*res != 0){
printf("%d ",*res);
res++;
}
free(data);
return 0;
}