수동 메모리 관리

사용자가 직접 메모리를 할당, 해제 합니다.

조심하지 않으면, 충돌(crash), 버그, 보안취약성 및 메모리 누출이 발생할 수 있습니다.

C 언어 예제

malloc으로 할당하는 포인터마다 free를 호출해야 합니다:

void foo(size_t n) {
    int* int_array = malloc(n * sizeof(int));
    //
    // ... lots of code
    //
    free(int_array);
}

만약 mallocfree 사이에서 함수가 일찍 반환되면 메모리 누출이 일어납니다: 포인터를 잃어버리게 되어 메모리를 반환할 수 없게 됩니다. 같은 포인터를 두 번 반환하거나, 이미 반환된 포인터를 접근하는 것은 심각한 보안 문제를 일으킬 수 있습니다.