所以我正在写一个程序,从标准输入接收任何数量的整数,我需要为输入动态分配足够的空间。动态内存分配为未知的输入数量(不realloc)
这对我来说不会是一个问题,除了两个原因: 1)您不指定将有多少输入,所以我不能只使用calloc和输入的数量,而没有通过读取他们和计数。 2)我不能使用realloc来增加数组的大小。
有什么方法可以统计输入中有多少个整数,然后再次读取它们并将它们放入数组中?
所以我正在写一个程序,从标准输入接收任何数量的整数,我需要为输入动态分配足够的空间。动态内存分配为未知的输入数量(不realloc)
这对我来说不会是一个问题,除了两个原因: 1)您不指定将有多少输入,所以我不能只使用calloc和输入的数量,而没有通过读取他们和计数。 2)我不能使用realloc来增加数组的大小。
有什么方法可以统计输入中有多少个整数,然后再次读取它们并将它们放入数组中?
使用linked-list。您可以根据需要分配新空间,而无需移动现有数据。
有什么方法可以统计输入中有多少个整数,然后再次读取它们并将它们放入数组中?
我能想到的做到这一点的唯一方法是复制到tmpfile()
,你算的话,rewind()
文件并再次读取。
首先,你为什么不能使用realloc()
?
如果实在不行,可以考虑创建一个整数与列表元素链表定义是这样的:
typedef struct tNumber
{
int Number;
struct tNumber* Next;
} tNumber;
是否有某种方式来算多少整数,在输入,然后阅读再次通过它们并将它们放入数组中?
没有。
是的,绝对使用链表。并感谢您回答我的问题。我不能使用realloc(),因为我们的老师不允许我们使用。 – user2097845 2013-02-22 03:28:16
好主意,谢谢! – user2097845 2013-02-22 03:25:07