2014-01-31 3 views
0
#include<stdio.h> 
#include<conio.h> 

int main() 
{ 
    int num; 
    printf("Enter your number \n"); 
    scanf_s("%d", num); 
    printf("Your number is %d", num); 
    _getch(); 
    return 0; 
} 

Когда я строить выше код в VS2013 это дает мне следующую ошибку:Используется неинициализированная локальная переменная 'num'?

ошибка C4700: неинициализированным локальная переменная «Num» используется ?? Какая причина для этого?

+3

'& num' в scanf –

ответ

5

Вы забыли &:

scanf_s("%d", &num); 

scanf ожидать указатель, поэтому он читает значение num, чтобы найти адрес, чтобы написать пользовательский ввод (и Num не был инициализирован, поэтому поднимание компилятор предупреждение). Но то, что вы на самом деле имели в виду, это адрес самого num.

+0

btw что такое' _s'? Я не знаю .. –

+1

Является «безопасной» версией scanf, которая может предотвратить переполнение буфера. – fede1024

+0

Я также не знаю «scanf_s», я написал «scanf», intellisense предложил мне сделать его scanf_s, иначе это давало и ошибка. – TheSpy

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