[C] malloc-lab 구현 (Implicit, Explicit, Segregated)
·
C언어
동적 메모리 할당기를 만드는 이유? - 동적 메모리 할당을 하지 않는다면, 배열을 정해진 최대 배열 크기를 갖는 정적 배열로 정의할 것이다. 작은 프로그램에서는 이 방법이 크게 문제가 되지 않을 수 있지만 코드 길이가 길어질수록 사용자가 많은 규모의 소프트웨어라면 정적배열 선언은 관리가 어려워집니다. - 이 어려움을 해결하기위해 런타임시 메모리에 데이터를 동적으로 할당해야 합니다. 할당기에는 아래와 같이 크게 2종류가 있습니다. 명시적 할당기(Explicit Allocator) : 명시적 할당기는 프로그래머가 직접 메모리를 할당하고 해제하는 방식을 의미합니다. 프로그래머는 메모리를 동적으로 할당하기 위해 할당하는 함수(malloc) 해제하는 함수(free)를 호출해야 합니다. 묵시적 할당기(Implici..
[C] 동적 메모리 할당(malloc, calloc, realloc)
·
C언어
1.동적 메모리 할당이란? - 프로세스는 더 큰 메모리를 할당해서 사용할 수 있도록 힙(Heap)영역을 제공한다. - 힙영역은 지역변수와 매개변수등을 저장하는 스택(Stack)영역과 달리 실행시점에 원하는 크기만큼 메모리를 할당할 수 있습니다. - 메모리 사용이 끝나면 언제든지 할당한 메모리 공간을 해제할 수 있습니다. 1.1 malloc - 힙은 스택처럼 관리되는 공간이 아니라서 변수를 선언하는 행위로 메모리를 할당할 수 없습니다. 그렇기 때문에 C 표준 함수인 malloc과 free를 통해서 메모리 할당 및 해제 해야합니다. - 함수 원형 void *malloc(size_t size); /* size_t는 unsigned int와 같음 */ - void*를 사용하면 형 변환을 해야하는 불편함이 있기 ..
yunchan^.^
'동적 메모리 할당' 태그의 글 목록