2013-02-23 2 views
-2

비교적 새로운 Objective-C 저는이 C 코드의 상위 집합을 알고 있습니다.하지만 GCC에서이 C 코드를 컴파일하려고하면 오류가 발생하고 Im이 아닙니다. 코드를 실행할 수 있습니다.Objective-C 컴파일러에서 C 프로그램이 제대로 컴파일되지 않았습니다.

#include <stdio.h> 
    int main(){ 
    int x; 
    printf("Input int:\n"); 
    scanf("%d", x); 
    printf("%d", x); 
    return 0;    
} 

이 코드를 수행 할 때 오류는 없지만 출력이 잘못되었습니다. 참고 : 유일한 변경 사항은 "int * x"입니다.

#include <stdio.h> 
    int main(){ 
    int *x; 
    printf("Input int:\n"); 
    scanf("%d", x); 
    printf("%d", x); 
    return 0;    
} 

    INPUT: 3 
    OUTPUT: 2147307520 
+5

두 언어 모두에서 둘 다 잘못되었습니다. –

답변

9

당신은 첫 번째와 같이 정수를위한 공간을 할당해야하지만 두 번째 같이 scanf()에 대한 포인터를 전달해야 - 종류의; 정수의 주소를 scanf()으로 전달해야합니다. 다음과 같이 작성하십시오 :

#include <stdio.h> 

int main(void) 
{ 
    int x; 
    printf("Input int:\n"); 
    scanf("%d", &x); 
    printf("%d\n", x); 
    return 0;    
} 

이 코드는 현재 작동 중입니다. 기회는 목표 C로 작용할 것입니다. 출력물의 끝에는 개행 문자를 포함시키는 것이 좋습니다.

관련 문제