我正在尝试使用scanf()
中的C
函数阅读该段落。
所以,首先我尝试了下面的代码,
#include <stdio.h>
int main()
{
char Input[100];
printf("Please give the paragraph\n");
scanf("%[^EOF]\n",Input );
printf("\n\n%s\n\n",Input);
return 1;
}
它工作正常,它从stdin
获取输入段并打印出来。
然后我用下面给出的指针尝试了同样的事情,
#include <stdio.h>
int main()
{
char *Input;
printf("Please give the paragraph\n");
scanf("%[^EOF]\n",Input );
printf("\n\n%s\n\n",Input);
return 1;
}
此代码也可以获取输入并正确打印输出。
但它抛出了segmentation fault error while the program terminating.
所以,我需要知道为何在终止时发生错误?
如果指针没有指向任何内存意味着,printf()
如何打印给定的输入,以及打印的位置?
感谢。
答案 0 :(得分:0)
由于Input
是一个特别指向任何东西并且没有特别值的指针,因此将其值传递给scanf
是没有意义的。首先为它赋值 - 使其指向某个东西 - 然后您可以使用它来告诉scanf
存储内容的位置。