所以我浏览了一些相同的问题,找到了一个有效的答案。我只是想知道是否有人能从这个答案中向我解释最后一行代码:
Read text from a file and realloc when needed
fgets(linebuffer + (maxlinelen/2 - 1), maxlinelen/2 + 1, fp); //this line
非常感谢你!
最佳答案
作者试图读入数组的后半部分。为了做到这一点,基址必须更高。因此第一个参数linebuffer + (maxlinelen/2 - 1)
。它获取数组的基址,并将数组长度的一半添加到其中。
但是由于数组的长度是一半,所以编写器将数组的大小减半。因此,第二个参数maxlinelen/2 + 1
。
关于c - 回复:读取一行并在C中使用realloc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39039162/