我试图将文件内容读入字符串,但在为字符串分配内存时遇到问题。我在逐行阅读文件,我想跳过前两行。

int counter=1;
char *myhtml;
myhtml=calloc(1,10);

while ((read = getline(&line, &len, fp)) != -1)
{
    if (counter>2)
    {
        //printf("%s",line);
        myhtml=realloc(myhtml,sizeof(char)*strlen(line));
        strcat(myhtml,line);
    }
    counter++;
}

我该如何为这种功能重新分配内存?

最佳答案

只要你只是在读一个文件,你可以马上为文件分配整个空间,比如:

struct stat statbuf;
stat("testfile", &statbuf);
char *myhtml = calloc(1,statbuf.st_size);

在你看完书之后,也许可以把剩下的放出来。
因为malloc很贵所以便宜多了

关于c - 读取文件到字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31869031/

10-11 22:05