我正在用C编写一个程序,它将执行一些逻辑,但是此刻,我只是试图测试输入是否正确保存。 str应该存储列出的菜单选项之一,unsigned int hex应该存储一个十六进制值,而int存储一个十进制值。
下面是代码:
int main()
{
char str[2];
unsigned int hex;
int decimal;
printf("Choose an Option (C, M, Q, S, V): ");
scanf("%s", &str);
printf("Enter a value for x: ");
scanf("%u", &hex);
printf("Enter a value for n: ");
scanf("%d",decimal);
printf("Testing: %s, %u, %d\n",str,hex,decimal);
return 0;
}
当我在终端上编译它时,它没有任何错误,它甚至贯穿我要求它的所有输入。输出看起来像这样:
Enter a value for x: 1
Enter a value for n: 1
Segmentation fault: 11
为什么会出现细分错误11?任何帮助表示赞赏。
[&
在这里不需要:
scanf("%s", &str);
并且这里需要&
:
scanf("%d",decimal);