본문 바로가기 메뉴 바로가기

손끝으로 만드는 세상

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

손끝으로 만드는 세상

검색하기 폼
  • 분류 전체보기 (30)
    • 개발 일반 (0)
    • Android (1)
    • WPF (4)
    • C# (18)
    • Linux (Ubuntu) (5)
    • Python (2)
  • 방명록

버퍼 (2)
[C#] 고정크기배열 사용방법 #MarshalAs

앞서 포스팅한 자료와 마찬가지로 다음과같은 구조체를 만들어보면 public struct MyArray { public char[] charArray; public string str; } 크기는 8이 된다. fixed키워드를 사용하면 배열의 크기를 고정할 수 있지만, 안전하지 않은 코드(unsafe)영역으로 지정해야한다는 문제가 있다. MarshalAs키워드를 사용해 고정크기 배열 (혹은 고정크기 문자열)을 사용할 수 있다. [StructLayout(LayoutKind.Sequential)] public struct MyArray { [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)] public char[] charArray; [MarshalAs(Unman..

C# 2008. 12. 25. 18:54
[C#] 고정크기배열 사용방법 #fixed

다른 언어로 작성된 코드와 같은 기존코드, DLL, COM 프로젝트를 사용하다보면 고정크기의 배열을 사용해야 할 때가 있다. C# 1.1까지의 경우 고정크기를 사용하지 못하였다. 예를들어 다음과 같이 구조체를 선언하였을 경우 public struct MyArray { public char[] pathName; private int reserved; } 구조체의 크기는 8바이트가 된다. pathName배열의 경우 힙에 할당된 배열에 대한 참조가 된다.(포인터의 역할) 4바이트라는 것이다. 이러한 문제점을 해결하기 위해 C# 2.0부터는 fixed 문을 사용하여 고정크기의 배열을 만들 수 있게 하였다. public struct MyArray { public fixed char pathName[128]; } ..

C# 2008. 12. 25. 18:07
이전 1 다음
이전 다음

Blog is powered by Tistory / Designed by Tistory

티스토리툴바