分段错误:11,在尝试打印结果时使用C代码

问题描述 投票:0回答:1

我正在用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?任何帮助表示赞赏。

c fault
1个回答
0
投票

[&在这里不需要:

scanf("%s", &str);

并且这里需要&

scanf("%d",decimal);
© www.soinside.com 2019 - 2024. All rights reserved.