与此相关的问题: How can I read an input string of unknown length?
几个问题:
这行 if(!str)return str
是什么意思?意思是?
为什么是int ch
一个整数?它不应该是一个字符吗?
size
的目的是什么?到底给了函数吗?
提出一个单独的问题,因为我了解该方法,但不了解幕后的一些内容。
最佳答案
行 if (!str) return str;
基本上意味着 if (str == NULL) return NULL;
这只是错误检查 的返回值>重新分配
。
我们将 ch
设为 int
的原因是函数 fgetc
返回一个 int
(这就是我们可以返回 EOF
,但 EOF
不是合法的 char
值)。
size
参数仅表示我们分配的缓冲区的初始大小。因此,如果调用该函数的人非常清楚(不一定准确)知道字符串有多大,他们可以在此参数中给出它,并通过避免额外调用 realloc 来节省大量时间>.
关于C - 读取未知长度的字符串说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727116/