Daily iOS
메모리·ARC

메모리 레이아웃

MemoryLayout<T>.size, stride, alignment는 각각 무엇이고 왜 셋이 다를 수 있나요? 아래 struct를 예로 들어 설명해 주세요.

struct A { var a: Bool; var b: Int64; var c: Bool }
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

size는 실제 데이터 바이트, alignment는 시작 주소 배수 제약, stride는 배열에서 다음 원소까지 거리(size를 alignment로 올림). 셋이 다른 이유는 필드 사이와 끝에 들어가는 패딩이다.

받은 질문 공유