这个scanf()出了什么问题?
我是以某种错误的方式使用scanf()吗?
char *input; scanf("%s", input); printf("%s\n", input);
这在运行时失败了。
char *input;
这是一个指针。 它没有指向任何记忆。
#include #include int main() { //char *input; char input[128]; memset(input, 0 ,sizeof(input)); scanf("%s", input); printf("%s\n", input); return 0; }
声明char *
只会创建一个指针,它不会为字符串分配任何内存。 您需要为输入分配内存。 您可以通过malloc
动态执行此操作(完成后可以free
执行),也可以声明像char input[100]
这样的静态大小数组。
替换char *input;
char input[1024] = {0};
你应该确保传递给scanf的参数指向一个可以保存输入的缓冲区