Mac上的C中的分段错误11

时间:2014-09-28 20:29:55

标签: c

我无法从创建的文件中读取数据。这是一个非常简单的代码,我根本无法理解为什么它不起作用。我刚刚转移到mac并安装了开发人员命令行工具。

我的代码是:

int main()
{
    FILE *fp;
    int lines = 0;
    char *data;
    data = (char *)malloc(1000);
    data = NULL;

    fp = fopen("1.txt", "r");
    while (fgets(data, 1000, fp) != NULL)
    {
        printf("%s\n", data);
        lines++;
    }
    printf("Lines = %d\n", lines);
    free(data);
    fclose(fp);
    return 0;
}

1 个答案:

答案 0 :(得分:1)

您为data分配空间,然后立即泄漏。

char *data;
data = (char *)malloc(1000);
data = NULL;

然后使用fgets()NULL指针,这会导致未定义的行为。

fgets(data, 1000, fp)

也许你应该删除这行代码?

data = NULL;