C: Free-Store와 Heap의 차이점 공개
동적 메모리 할당 영역에서 C는 두 가지 기본 메커니즘을 제공합니다. /삭제 및 malloc/free. 둘 다 힙에서 작동하는 것으로 종종 언급되지만 이는 "자유 저장소"와 "힙"이라는 용어 사이에 실질적인 차이가 있는지에 대한 의문을 제기합니다.
두 가지 용어에 명확한 차이가 있습니까? 컴파일러는 이러한 용어를 어떻게 처리합니까?
답은 C 메모리 관리의 발전에 있습니다. 역사적으로 "힙"은 특히 malloc/free 기능에 의해 관리되는 메모리 영역을 나타냅니다. 그러나 new 및 delete 연산자가 도입되면서 별도의 "자유 저장소" 개념이 등장했습니다. 이는 두 메모리 관리 시스템을 분리하여 서로 다른 할당자가 실수로 혼합되는 것을 방지하기 위한 것입니다.
현재 C의 경우 자유 저장소와 힙의 구분은 대체로 개념화되었습니다. 신규/삭제 및 malloc/해제 모두 일반적으로 운영 체제에서 관리하는 동일한 풀에서 메모리를 할당합니다. 그러나 사용법은 뚜렷하게 유지됩니다. new/delete는 생성자와 소멸자가 필요한 객체에 사용되는 반면, malloc/free는 더 유연하고 원시 메모리 할당에 사용됩니다.
인터뷰에서는 전통적인 구별을 강조하는 것이 일반적입니다.
그러나 면접관은 최신 컴파일러가 이러한 구분을 엄격하게 적용하지 않는 경우가 많아 잠재적으로 두 연산자가 동일한 메모리 공간에 액세스할 수 있다는 점을 인정할 수도 있습니다.
위 내용은 C의 Free Store와 Heap 사이에 실제 차이가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!