C++ 객체 수명과 암묵적 객체 생성
이 글은 C++에서 객체 수명(object lifetime)의 기본 규칙과 암묵적 객체 생성(implicit object creation) 개념을 다룹니다. C++17까지는 `malloc`으로 할당받은 메모리를 구조체 포인터로 캐스팅하여 접근하는 것이 미정의 동작(UB)으로 간주되었으나, 이는 C++의 '살아 있는 객체'가 존재해야 한다는 규칙 때문입니다. C에서는 포인터가 단순 메모리 주소로 해석되지만, C++은 해당 주소에 유효한 객체가 있어야 합니다. C++20의 암묵적 객체 생성은 이러한 실무적 관행을 표준화하려는 시도입니다. 글은 객체 수명의 기본 규칙을 설명하고, 표준이 어떻게 이러한 관행을 수용해왔는지 추적하며, `reinterpret_cast`의 안전한 사용 범위를 이해하는 데 도움을 줍니다.













