gpt4 book ai didi

c - 为什么使用指针变量时会出现段错误?

转载 作者:太空宇宙 更新时间:2023-11-04 04:27:34 25 4
gpt4 key购买 nike

我正在尝试使用 C 中的 scanf() 函数阅读该段落。所以,首先我尝试了下面的代码,

#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;
}

此代码还获取输入并正确打印输出。但是它在程序终止时抛出 段错误。那么,我需要知道为什么在终止时会出现错误?

如果指针不指向任何内存,printf() 如何打印给定的输入,以及它从哪里打印?

谢谢。

最佳答案

由于 Input 是指向任何特定内容的指针,也没有特定的值,因此将其值传递给 scanf 是没有意义的。首先为它分配一个值——让它指向某物——然后你可以用它来告诉 scanf 在哪里存储东西。

关于c - 为什么使用指针变量时会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40055161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com