与此相关的问题: How can I read an input string of unknown length?
几个问题:
if(!str)return str
行是什么意思?
为什么int ch
是整数?它不应该是一个炭?
准确地给予函数size
的目的是什么?
问一个单独的问题,因为我理解了这个方法,而不是引擎盖下的一些东西。
答案 0 :(得分:6)
行if (!str) return str;
基本上代表if (str == NULL) return NULL;
,这只是错误检查realloc
的返回值。
我们ch
int
的原因是因为函数fgetc
返回int
(这就是我们可以返回EOF
的方式{ {1}}不是合法的EOF
值。
char
参数只表示我们分配的缓冲区的初始大小。因此,如果调用该函数的人对字符串的大小有一个非常好(不一定完全)的想法,他们可以在此参数中给出它,并通过避免额外调用size
来节省大量时间。 / p>