所以我正在编写一个从stdin接收任意数量整数的程序,我需要为输入动态分配足够的空间。
除了两个原因,这对我来说不是问题: 1)你没有指定将有多少输入,所以我不能只使用calloc以及输入数量而没有读取它们并计数。 2)我不能使用realloc来增加数组的大小。
是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中?
答案 0 :(得分:1)
首先,为什么不能使用realloc()
?
如果你真的不能,可以考虑创建一个整数的链表,列表元素定义如下:
typedef struct tNumber
{
int Number;
struct tNumber* Next;
} tNumber;
是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中?
没有。
答案 1 :(得分:0)
使用linked-list。您可以根据需要分配新空间,而无需移动现有数据。
是否有某种方法可以计算输入中有多少个整数,然后再次读取它们并将它们放入数组中?
我能想到的唯一方法是在计算时复制到tmpfile()
,然后复制rewind()
文件并再次阅读。