memory_c — C 라이브러리 메모리 관리
memory_c — C 라이브러리 메모리 관리 (C-style memory management)
C++는 표준 라이브러리에서 C 언어의 메모리 관리 함수(<cstdlib>)를 그대로 제공해요. 이들은 저수준의 원시 메모리 할당·해제·크기 변경을 담당해요.
이 함수들은 C와의 호환성을 위해 제공되며, 대부분의 C++ 코드에서는 new/delete나 스마트 포인터를 쓰는 게 더 안전하고 편리해요. 다만 임베디드 환경, 커스텀 할당기, C 인터페이스 연동에서는 여전히 유용해요.
출처: cppreference
본문
C++는 C 라이브러리의 메모리 관리 함수 집합을 <cstdlib> 헤더로 제공해요. 주요 함수는 다음과 같아요.
std::malloc— 크기size의 메모리 블록을 할당std::calloc—num개의 객체를 각각size크기로 할당하고 0으로 초기화std::realloc— 기존 메모리 블록의 크기를 변경std::free— 할당된 메모리 블록을 해제std::aligned_alloc— 지정된 정렬로 메모리를 할당 (C++17)
이 함수들은 스마트 포인터가 없던 C와의 호환성을 유지하기 위해 존재해요. 할당한 메모리는 반드시 free로 해제해야 하고, 할당 방식과 해제 방식을 섞으면 안 돼요 (예: new로 할당하고 free로 해제 — 정의되지 않은 동작).
현대 C++에서는 동적 메모리가 필요하면 std::unique_ptr, std::shared_ptr, std::vector 같은 RAII 기반 도구를 우선 사용하는 것이 권장돼요. C API와 연동해야 하거나 로우 레벨 제어가 필요할 때만 이 C 함수들을 직접 써요.