C#에서 포인터 사용

훈스닷넷에 답글달고 정리 차원에서 남겨둔다.

C#에서는 C에서 처럼 포인터를 사용할수가 있다.

빌드옵션에서 안전하지 않은 코드 check 해주고 다음과 같은 방법으로 한다.


        static void Main(string[] args)
        {
            foo();
        }

        unsafe static void foo()
        {
            Int64 aa = 123456789;
            Int64 bb = 123222;

            IntPtr pt = new IntPtr(&aa);
            IntPtr pt2 = new IntPtr(&bb);

            Console.WriteLine(pt.ToString("x"));
            Console.WriteLine(pt2.ToString("x"));


            Int32 a = 1234231;
            Int32 b = 154324;

            IntPtr pt3 = new IntPtr(&a);
            IntPtr pt4 = new IntPtr(&b);

            Console.WriteLine(pt3.ToString("x"));
            Console.WriteLine(pt4.ToString("x"));

        }


확인해보면 Int64는 8바이트, Int32는 4바이트 만큼 주소가 증가했음을 알 수 있다.

댓글

이 블로그의 인기 게시물

WPF RichTextBox 와 Document의 바인딩

WPF 이미지위에 라인 그리기(WPF DrawLine on exist Image)