我有一个关于使用fgets()和char *字符串的简单问题。使用fgets()char *类型
....
char *temp;
FILE fp=fopen("test.txt", "r");
fgets(temp, 500, fp);
printf("%s", temp);
....
此代码无法正常工作。
但是我修改char *temp
到char temp[100];
后,代码运行得很好,就像我打算的那样。
这两者有什么区别?
当我GOOGLE了它,也有人说内存必须使用malloc()...
被分配到char *
但我无法理解。
如果你不分配内存指针指向什么?要记住这一点,在声明后立即将指针指向空指针。当释放指针的内存时,它将保留。在删除后也会将空指定为空。没有内存分配指针是一个非常常见的错误,并给你可怕的分段错误。 –