2016-09-23 2 views
1
#include<stdio.h> 
int main() { 
    int *p=NULL; 
    if (p == NULL) { 
     printf("%x",*p); 
    } 
    return 0; 
} 

가능하면 어떻게합니까? 내가 할 수 없다면, 그 가치는 무엇입니까?NULL 포인터를 가리키는 값을 확인할 수 있습니까?

+3

주로 플랫폼에 따라 다릅니다. – LPs

+0

null은 플랫폼에 따라 달라집니다. null는 "undefined"/ "unknown"으로 처리되어야하므로 사용자가하려는 것은 거의 의미가 없습니다. –

+0

하나의 마이크로 컨트롤러 또는 다른 간단한 마이크로 프로세서에서 그 값을 읽을 수 있습니다. –

답변

2

아니요, 일반적으로 NULL 포인터를 참조 해제 할 수 없습니다.이 포인터는 정의되지 않은 동작을 제공합니다.

그런 점에서이 아이디어는 약간 이상합니다.

이것은 특정 플랫폼에서 코드가 실행되지 않거나 결과가 발생하지 않지만 언어 사양을 위반하는 것은 아니므로 특정 구현에서 실행 한 결과가 중요하지 않음을 유의하십시오.

관련 문제