malloc

🍀 Knowledge/시스템 프로그래밍

[시스템 프로그래밍] 동적 메모리 할당(Implicit, Explicit List)

메모리에 대한 진실 🔲 메모리는 무한의 자원이 아닌 할당되고 관리되는 자원이다. 🔲 메모리 참조 버그는 치명적이다. 🔲 메모리의 성능은 일정하지 않다. 캐시와 가상 메모리는 프로그램 성능에 영향을 준다. 동적 메모리 할당기 🔶 직접 할당(Explicit) 응용 프로그램이 할당하고, 반환한다. (malloc, free) 🔶 간접 할당(Implicit) 응용 프로그램이 할당하지만, 반환하지 않는다. 예를 들어 자바는 가비지 컬렉션 기능이 있다. 메모리는 블록 단위로 제공되며, 응용 프로그램에 free 메모리 블록을 나눠준다. 메모리 구조 🔲 할당기는 sbrk 함수를 통해 추가적인 힙 메모리를 운영체제로부터 요청한다. 🔲 stack, kernel virtual memory가 유저 코드에서 볼 수 있는 메모리이..

💫 Language/C

[C/C++] malloc과 Stack과 Heap의 관계

이전 포스팅에서 스택 프레임 내에서 사라지는 지역 변수를 보존하기 위한 방법으로 동적 메모리를 사용한다고 했었다. 그리고 동적 메모리를 사용하려면 스택과 힙을 알아야 한다. 메모리 모델 : Stack vs. Heap Stack은 무엇을 포함하는 가? 지역 변수, 인자, 리턴 주소 Heap이란 무엇인가? 변수와 비슷하지만 변수 이름이 없는 메모리 조각 (동적 변수, 무명 변수라고 부른다.) Heap에 있는 동적 변수는 함수와 독립적으로 존재한다. 이는 전역 변수와 유사하다. Heap에 있는 동적 변수는 동적으로 생성과 제거가 가능하다. 이는 전역 변수와 다른 점이다. 따라서 동적으로 생성하고 제거하기 하기위한 함수가 존재한다. 생성 함수 malloc(), new() 제거 함수 free() Stack 지역 ..

TIlearn
'malloc' 태그의 글 목록