未知数量输入的动态内存分配(无realloc)

未知数量输入的动态内存分配(无realloc),c,C,因此,我正在编写一个程序,从stdin接收任意数量的整数,我需要为输入动态分配足够的空间 这对我来说不是问题,除了两个原因: 1) 您没有指定将有多少个输入,因此我不能在没有读取和计数的情况下使用calloc和输入的数量。 2) 我不能使用realloc来增加数组的大小 有什么方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入一个数组中?使用。您可以根据需要分配新空间,而无需移动现有数据 是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中 我能想到的唯一方法是

因此,我正在编写一个程序,从stdin接收任意数量的整数,我需要为输入动态分配足够的空间

这对我来说不是问题,除了两个原因: 1) 您没有指定将有多少个输入,因此我不能在没有读取和计数的情况下使用calloc和输入的数量。 2) 我不能使用realloc来增加数组的大小

有什么方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入一个数组中?

使用。您可以根据需要分配新空间,而无需移动现有数据

是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中

我能想到的唯一方法是在计数时复制到
tmpfile()
,然后
倒带()
文件并再次读取

使用。您可以根据需要分配新空间,而无需移动现有数据

是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中


我能想到的唯一方法是在计数时复制到
tmpfile()
,然后
倒带()
文件并再次读取

首先,为什么不能使用
realloc()

如果你真的不能,考虑用列表元素创建一个链表的链表,定义如下:

typedef struct tNumber
{
  int Number;
  struct tNumber* Next;
} tNumber;
是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中


没有。

首先,为什么不能使用
realloc()

如果你真的不能,考虑用列表元素创建一个链表的链表,定义如下:

typedef struct tNumber
{
  int Number;
  struct tNumber* Next;
} tNumber;
是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中


没有。

是的,一定要使用链表。谢谢你回答我的问题。我不能使用realloc(),因为我们的老师不允许我们使用。是的,当然可以使用链表。谢谢你回答我的问题。我不能使用realloc(),因为老师不允许我们使用。