我无法从创建的文件中读取数据。这是一个非常简单的代码,我根本无法理解为什么它不起作用。我刚刚转移到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;
}
答案 0 :(得分:1)
您为data
分配空间,然后立即泄漏。
char *data;
data = (char *)malloc(1000);
data = NULL;
然后使用fgets()
和NULL
指针,这会导致未定义的行为。
fgets(data, 1000, fp)
也许你应该删除这行代码?
data = NULL;