我哪里出错了,为什么?
#include<stdio.h>
#include<string.h>
int main()
{
char *str;
int length, i, j, flag = 0;
printf("\n\nEnter string: ");
fgets(str, 20, stdin);
printf("You entered: %s", str);
return 0;
}
fgets(str, 20, stdin);
行有问题。我想不明白。输入字符串后,编译器停止工作,我收到一条错误消息:该程序已停止工作。你能指出我哪里出错了以及解决这个问题的方法吗?标准库将 fgets
定义为:
char * fgets ( char * str, int num, FILE * stream );
我在 MinGW shell 上使用 Sublime Text 2 和 GCC。
基于指针概念的不同问题:
char * str
、char* str
和 char *str
之间有什么区别吗?
最佳答案
你需要为str
分配内存
任何尺寸,例如 128。
char *str = malloc(128*sizeof(char));
或
字符字符串[128];
关于c - 这段代码中的 fgets 有什么错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193850/