Ошибка сегментации: 11, в C коде при попытке печати результатов - PullRequest
0 голосов
/ 28 марта 2020

Я пишу программу на C, которая будет выполнять некоторые логические операции c, но в данный момент я просто пытаюсь проверить, правильно ли сохраняются входные данные. Предполагается, что в str хранится один из перечисленных пунктов меню, в шестнадцатеричном формате без знака предполагается хранить шестнадцатеричное значение, а в 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? Любая помощь приветствуется.

1 Ответ

2 голосов
/ 28 марта 2020

& здесь не нужно:

scanf("%s", &str);

И & необходимо здесь:

scanf("%d",decimal);
...