我无法从创建的文件中读取数据。这是一个非常简单的代码,我无法理解为什么它不起作用。我刚转到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("%sn", data);
lines++;
}
printf("Lines = %dn", lines);
free(data);
fclose(fp);
return 0;
}
您为data
分配空间,然后立即泄漏。
char *data;
data = (char *)malloc(1000);
data = NULL;
然后将fgets()
与NULL
指针一起使用,这将导致未定义的行为。
fgets(data, 1000, fp)
也许你应该删除这行代码?
data = NULL;