C language - Memory of C programming
C언어에서는 아래 5가지 블럭의 메모리를 사용합니다.

Heap
heap 메모리는 프로그램이 실행되는 동안 할당됩니다. 따라서 사용 후 메모리 해제를 하지 않으면 메모리 누수가 발생할 수 있습니다.
e.g.
Uninitialized Data
이 메모리 영역에는 초기화 되지 않은 전역변수, static 변수가 할당됩니다.
Initialized Data
이 메모리 영역에는 초기화 된 전역변수, static 변수가 할당됩니다.
Code segment
이 메모리에는 실행 가능한 프로그램 코드를 저장하거나 const(읽기 전용)메모리 입니다.
e.g.

- Stack
- Heap
- Uninitialized Data(.bss)
- Initialized Data(.data)
- Code segment(.text)
Stack
stack 메모리는 일시적인 메모리로 사용이 됩니다. 이름에서 볼 수 있는 것과 같이 stack 구조로 메모리에 마지막에 넣어진 데이터가 처음으로 빠지는 형태(LIFO) 입니다. 함수가 호출될 때 마다 메모리가 할당되며 함수 호출이 끝나면 메모리 할당이 해제됩니다. 자동으로 할당/해제 되는 메모리이기 때문에 사용자가 메모리에 해제를 신경 쓸 필요가 없습니다.
e.g.
Heap
heap 메모리는 프로그램이 실행되는 동안 할당됩니다. 따라서 사용 후 메모리 해제를 하지 않으면 메모리 누수가 발생할 수 있습니다.
e.g.
Uninitialized Data
이 메모리 영역에는 초기화 되지 않은 전역변수, static 변수가 할당됩니다.
Initialized Data
이 메모리 영역에는 초기화 된 전역변수, static 변수가 할당됩니다.
Code segment
이 메모리에는 실행 가능한 프로그램 코드를 저장하거나 const(읽기 전용)메모리 입니다.
e.g.
댓글
댓글 쓰기