【发布时间】:2018-05-22 00:02:02
【问题描述】:
我有一个程序反复询问用户输入一行并将它们存储在一个数组中。 如果我可以在运行时获得许多要存储的项目,我知道如何使用动态内存分配来制作数组。 例如
char **array = (char**)malloc(numberOfItems * sizeof(char*));
但就我而言,我在运行时不知道 numberOfItems,因为我在 while 循环中获取输入,该循环可以通过 ctrl+D 终止。
while(!feof(stdin)
{
array[i] = (char*)malloc(167 * sizeof(char));
}
请帮忙。
【问题讨论】:
-
你想要
realloc。网上很多例子。 -
顺便说一句,如果你这样使用
feof(),它是行不通的;见Why is “while ( !feof (file) )” always wrong?。