일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- jupyter
- C++
- c# 윈폼
- 도커
- C언어 포인터
- Algorithm
- Python
- jupyter lab
- github
- C# delegate
- HTML
- 플러터
- c#
- git
- Houdini
- 다트 언어
- 구조체
- dart 언어
- 유니티
- Unity
- docker
- gitlab
- c# winform
- c# 추상 클래스
- Flutter
- 포인터
- c언어
- 깃
- Data Structure
- vim
Archives
- Today
- Total
목록pragma pack (1)
nomad-programmer
[Programming/C] 구조체의 크기를 예측하지 말라
구조체는 멤버 변수들의 크기에 따라 구조체의 크기가 결정되지만 구조체의 크기를 예측하여 동적 메모리를 생성하거나, 파일에 저장하거나, 네트워크에 전송하는 등의 작업을 하면 예상했던 구조체의 크기와 달라 오류가 발생하는 경우가 있다. 이유는 컴파일러가 프로그램 성능을 향상시키기 위하여 일정한 크기 형태로 구조체 변수들을 주소에 매핑시키기 때문이다. 매핑 : 패딩 바이트를 추가한 바이트 정렬 그래서 구조체의 크기는 모든 멤버 변수 크기의 합과 다를 수 있다. 다음은 구조체의 크기를 출력하는 예이다. #include typedef struct { char c; int n; } _data1; typedef struct { short s; int n; } _data2; typedef struct { int n1;..
Programming/C
2021. 1. 16. 01:35