有没有机会存储没有数组的许多变量?

时间:2015-11-10 03:22:23

标签: c arrays variables

我想从键盘上得到一些数字。但如何在没有array []的情况下存储该数字?我有机会这样做吗?我不确切知道有多少数字来自键盘。如果我有阵列的许可,那很简单。但是不允许使用数组。

1 个答案:

答案 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;
}