P9754 CSP-S 2023 "구조체" 문제 해설
1. 문제 핵심
프로그램이 실행되는 동안 새로운 구조체 타입을 동적으로 정의하고, 그 타입으로 전역 변수를 만든 뒤, 버 경로를 오프셋으로 변환하거나 반대로 주소를 멤버 경로로 환원해야 한다. 핵심은 구조체의 정렬(alignment)과 크기를 올바르게 계산하는 것이다.
2. 타입 정보 표현
모든 타입(기본형과 사용자 정의 구조체)은 이름, 크기, 정렬값, 멤버 목록을 갖 ...
8월 4일 19:43에 게시됨
alignas를 활용한 C++ 구조체 정밀 정렬 방법
C++11 표준부터 도입된 alignas 키워드는 변수나 타입의 메모리 정렬 방식을 명시적으로 지정할 수 있게 해준다. 이는 고성능 컴퓨팅, 메모리 집약적 자료구조, 하드웨어와의 직접적인 상호작용이 필요한 상황에서 특히 중요하다. alignas를 활용하면 구조체 멤버의 메모리 정렬 경계를 제어하여 접근 속도를 최적화하거나 특정 플랫폼의 정렬 요구사항을 충족시킬 수 있다 ...
6월 22일 02:28에 게시됨
Qt에서 QUdpSocket 직렬화 문제 해결 방법
간단한 Qt 네트워크 프로그램을 개발하던 중, 문자열 외에 사용자 정의 구조체를 전송해야 하는 상황에 직면했습니다. 이를 해결하기 위해 memcpy() 함수를 사용해 데이터를 BYTE 배열로 직렬화하여 네트워크 전송을 구현했습니다.
직렬화는 Java에서 유래한 개념으로, C에는 존재하지 않았지만 C++에서는 후에 직렬화 및 역직렬화 개념이 도입되었습니다. 직렬화란 시스 ...
5월 21일 18:51에 게시됨