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 < 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; } } } }
Hello! I just would like to give a huge thumbs up for the great info you have here on this post. I will be coming back to your blog for more soon.