2013-11-21 4 views
0

Я программист Python, изучающий C. Я получаю ошибку сегментации в финале printf() следующего кода. Я уверен, что это имеет какое-то отношение к выражению, но я не уверен, в чем проблема. К сожалению, выражение работает в Python, поэтому я не могу получить более конкретное сообщение об ошибке. Я использую компилятор GCC в Debian.Почему возникает ошибка ошибки сегментации с помощью следующего кода?

#include <stdio.h> 

int main(void) 
{ 

    int n; 

    printf("Enter a two-digit number: "); 
    scanf("%d",n); 

    printf("The reversal is: %d\n", (n % 10) * 10 + (n/10)); 
    return 0; 
} 
+0

scanf требуется указатель на n. –

+1

'scanf ("% d ", n);' должен быть 'scanf ("% d ", &n);' забыли 'и' –

+0

, вы знаете, что ошибка сегментации не в printf, а в вызове функции scanf. Из-за неверного доступа к памяти. Прочитайте [Ошибка сегментации] (http://en.wikipedia.org/wiki/Segmentation_fault) –

ответ

2

Pass адрес n в scanf() в

scanf("%d", &n); 
+0

Спасибо, я покажу себя ... –

0

попробовать scanf("%d",&n);

это не имеет никакого способа, чтобы положить что-нибудь в п, если она не имеет указатель на п

0

Вам нужно указать указатель на int как аргумент scanf, а не сам int; &n, а не только n.

Смежные вопросы