본문 바로가기
기술자료/C#

포인터 사용 C# Pointer unsafe

by 와이즈캣 2021. 4. 29.
728x90
반응형

C# 컴파일러는 기본적으로 C 타입의 포인터 사용을 막아 놓았습니다.
포인터의 사용은 안정적이지 못하다는 생각에서 기인했다고 짐작해 보았습니다.(관련 키워드가 unsafe임을 가만해서 추측해 봤습니다.) 뭐... 만든사람 마음이니깐요.

먼저 아래와 같은 소스를 준비 합니다.

static unsafe void Main(string[] args)
{
    int iNum = 100;
    int* iPointer = &iNum;

    Console.WriteLine(*iPointer);
}

 

우선적으로 포인터를 사용하려면 unsafe 키워드를 사용할 메서드 앞에 붙여 주어야 합니다.

그 다음 프로젝트 옵션의 빌드 옵션에서 unsafe 키워드 사용을 허용해야 합니다.

아래 그림을 참조하세요.

 

 

실행한 결과는 아래와 같습니다.

 

 

커맨드 창에서 직접 컴파일할 경우 /unsafe 키워드를 넣어서 컴파일 해 주어야 합니다.

아래 캡쳐를 참고하세요.

 

 

 

728x90