C# 포인터 사용 Byte*,int*

C# 에서 포인터를 사용하는 방법
단순히 C++ 처럼 byte*, int*  로 사용할 수 없다. 이것이 가능하려면
unsafe 를 선언해서 사용해야한다. 물론 프로젝트->옵션:빌드-> 옵션에서 안전하지않은 코드 혀용(F)을 선택 해줘야 한다.

또한 Byte* 와 같이 사용되려먼 Fixed를 선언해야 한다!

.

unsafe class Test
{
    public byte* PointerData(byte* data, int length)
    {
        byte[] safe = new byte[length];
        for (int i = 0; i < length; i++)
            safe[i] = data[i];

        fixed (byte* converted = safe)
        {
            // This will update the safe and converted arrays.
            for (int i = 0; i < length; i++)
                converted[i]++;

            return converted;
        }
    }
}

코드 사용예

class Test
{
   unsafe
   {

      public byte* PointerData(byte* data, int length)
    {
        byte[] safe = new byte[length];
        for (int i = 0; i &lt; length; i++)
            safe[i] = data[i];

        fixed (byte* converted = safe)
        {
            // This will update the safe and converted arrays.
            for (int i = 0; i &lt; length; i++)
                converted[i]++;

            return converted;
        }
    }
   }
}

“C# 포인터 사용 Byte*,int*”에 대한 한개의 댓글

답글 남기기