2014-02-14 2 views
0

다음 C 프로그램이 있습니다.포인터를 이해하지 못합니다.

#include <stdio.h> 
int main() 
{ 
    int *p, *q; 
    *p=5; 
    *q=6; 
    printf("%d %d", *p, *q); 
    return 0; 
} 

코드가 실행되고 있지 않습니다. 이 코드가 뭐니 뭐니?

+0

나중에 "코드가 실행되고 있지 않음"이 아닌, 정확히 어떻게 실패하는지 알려주십시오. 오류 메시지가 있으면 질문에 복사하여 붙여 넣으십시오. 문제는이 경우에 충분히 직설적 이었지만 다음에는 그렇지 않을 수도 있습니다. –

+0

[comp.lang.c FAQ] (http://www.c-faq.com/)는 훌륭한 자료입니다. 섹션 4는 포인터를 다룹니다. –

답변

1

포인터가 초기화되지 않았거나, malloc을 사용하여 유효한 메모리를 가리 키거나 로컬 변수의 주소를 가져와야합니다.

#include <stdio.h> 
int main() 
{ 
    int p, q; 
    int *pp = &p; 
    int *pq = &q; 
    *pp=5; 
    *pq=6; 
    printf("%d %d", *pp, *pq); 
    return 0; 
} 

.

+0

어떻게 초기화 할 수 있습니까? –

+0

내 대답을 편집했습니다. 이 경우에 new를 사용하는 이유를 알 수 없으므로 로컬 변수 만 표시됩니다. –

+0

질문이 있습니다. 포인터가 메모리 주소 만 보유 할 수 있습니까? –

관련 문제