DevOps:leehi9817
동적 메모리 할당 (Dynamic Memory Management) 본문
동적 메모리 할당 (Dynamic Memory Management)
프로그램이 사용하는 메모리 공간은 명령어 코드, 변수들을 위한 정적 메모리 공간과 실행 중에 사용되는 동적 메모리 공간으로 이루어진다. 동적 메모리 공간은 힙 메모리 (Heap Memory) 라고도 부른다. 힙 메모리를 사용하기 위해서는 사용자가 직접 메모리 할당을 요청하거나 할당 공간을 해제해야 하며 이러한 작업을 동적 메모리 관리 (Dynamic Memory Allocation : DMA) 라고 한다. 동적 메모리 관리를 위해서는 malloc과 free 전용 함수를 사용한다.
malloc 함수는 바이트 단위로 요청된 힙 메모리 공간을 할당해 주고 그 주소를 반환한다. 할당된 공간은 이 공간의 주소를 가지고 있는 포인터를 통해서 참조할 수 있다. 할당된 공간이 더 이상 필요 없는 때에는 이 공간의 포인터를 free 함수에 전달하여 해제한다.
전용 함수 | 기능 | 사용 예 |
malloc( ) | 요청된 크기의 힙 메모리 공간을 할당하고 그 시작 주소를 반환한다. | ptr = (int *) malloc (sizeof(int)); |
free( ) | 기존에 할당된 공간을 해제하여 힙 메모리에 반환한다. | free(ptr); |
malloc 함수를 통해 공간을 요청하는 명령문
공간 할당이 성공할 경우 메모리 주소가 반환되는데 형 변환 (Type Casting) 을 통하여 동일한 자료형의 포인터에 저장한다.
ex) ptr = ( int * ) malloc ( sizeof ( int ) );
할당된 공간을 해제하는 명령문
할당된 공간을 해제할 때는 대상 공간에 대한 포인터를 free 함수의 인자로 전달하고 형 변환없이 호출한다.
ex) free ( ptr );
'Computer Science > Data Structure' 카테고리의 다른 글
연결 리스트 (Linked List) (0) | 2020.01.02 |
---|---|
중위, 후위, 전위 수식 표기법 (Infix, Postfix, Prefix) (0) | 2020.01.01 |
Comments