저는 C에서 새롭기 때문에 할당자가 C로 할 수있는 일에 대해 혼란 스럽습니다.할당자가 필요에 따라 힙 요청을 충족시키기 위해 초기화되지 않은 데이터 세그먼트를 사용할 수 있습니까?
제목과 마찬가지로 할당자가 필요하면 힙 요청을 충족시키기 위해 초기화되지 않은 데이터 세그먼트를 사용할 수 있습니까?
저는 C에서 새롭기 때문에 할당자가 C로 할 수있는 일에 대해 혼란 스럽습니다.할당자가 필요에 따라 힙 요청을 충족시키기 위해 초기화되지 않은 데이터 세그먼트를 사용할 수 있습니까?
제목과 마찬가지로 할당자가 필요하면 힙 요청을 충족시키기 위해 초기화되지 않은 데이터 세그먼트를 사용할 수 있습니까?
"메모리 할당 자"라는 용어는 C 언어를 정의하는 표준에서 의미가 없습니다. 그러나 이들은 C 런타임 라이브러리가 제공해야하는 "메모리 관리 함수"집합을 정의하므로 사용자가 요구하는 함수라고 가정합니다.
표준은 또한 위치를 정의하지 않거나 메모리 기능 malloc
, calloc
, realloc
및 free
이 존재하고 지정된 의미를 가지고 있어야합니다 단지에서 할당 할 수 있고있는 방법에 대해 설명합니다. 따라서 어디에서 메모리를 할당할지 결정하는 것은 구현에 달려 있습니다.
"초기화되지 않은 데이터 세그먼트"라는 용어는 일반적으로 프로그램이 사용할 메모리의 양을 로더가 예약해야한다는 것을 지정하는 컴파일 된 실행 파일의 섹션을 의미합니다.
내가 알고있는 모든 구현 (또는 "초기화되지 않은 데이터 세그먼트"라는 용어가 의미하는 부분)에서이 섹션은 초기화되지 않은 정적 변수에 사용됩니다.
대부분의 구현에서 C 런타임은 메모리 블록을 얻기 위해 OS 커널을 호출하여 힙을 형성하여 프로그램에 할당합니다.
리눅스 here의 프로세스 메모리 레이아웃에 대한 설명이 나와 있습니다.
먼저 C의 할당자가 무엇인지 말해야합니다. – DeiDei
메모리 할당 자 – YINGYING
어쩌면 내가 힙 할당자를 말해야합니까? – YINGYING