C - 读取未知长度澄清的字符串

时间:2013-12-22 07:10:23

标签: c string dynamic-memory-allocation

与此相关的问题: How can I read an input string of unknown length?

几个问题:

if(!str)return str行是什么意思?

为什么int ch是整数?它不应该是一个炭?

准确地给予函数size的目的是什么?

问一个单独的问题,因为我理解了这个方法,而不是引擎盖下的一些东西。

1 个答案:

答案 0 :(得分:6)

if (!str) return str;基本上代表if (str == NULL) return NULL;,这只是错误检查realloc的返回值。

我们ch int的原因是因为函数fgetc返回int(这就是我们可以返回EOF的方式{ {1}}不是合法的EOF值。

char参数只表示我们分配的缓冲区的初始大小。因此,如果调用该函数的人对字符串的大小有一个非常好(不一定完全)的想法,他们可以在此参数中给出它,并通过避免额外调用size来节省大量时间。 / p>