> 백엔드 개발 > C++ > 본문

C의 Free Store와 Heap 사이에 실제 차이가 있습니까?

Patricia Arquette
풀어 주다: 2024-11-08 22:14:02
원래의
987명이 탐색했습니다.

Is There a Real Difference Between the Free Store and Heap in C  ?

C: Free-Store와 Heap의 차이점 공개

동적 메모리 할당 영역에서 C는 두 가지 기본 메커니즘을 제공합니다. /삭제 및 malloc/free. 둘 다 힙에서 작동하는 것으로 종종 언급되지만 이는 "자유 저장소"와 "힙"이라는 용어 사이에 실질적인 차이가 있는지에 대한 의문을 제기합니다.

두 가지 용어에 명확한 차이가 있습니까? 컴파일러는 이러한 용어를 어떻게 처리합니까?

답은 C 메모리 관리의 발전에 있습니다. 역사적으로 "힙"은 특히 malloc/free 기능에 의해 관리되는 메모리 영역을 나타냅니다. 그러나 new 및 delete 연산자가 도입되면서 별도의 "자유 저장소" 개념이 등장했습니다. 이는 두 메모리 관리 시스템을 분리하여 서로 다른 할당자가 실수로 혼합되는 것을 방지하기 위한 것입니다.

현재 C의 경우 자유 저장소와 힙의 구분은 대체로 개념화되었습니다. 신규/삭제 및 malloc/해제 모두 일반적으로 운영 체제에서 관리하는 동일한 풀에서 메모리를 할당합니다. 그러나 사용법은 뚜렷하게 유지됩니다. new/delete는 생성자와 소멸자가 필요한 객체에 사용되는 반면, malloc/free는 더 유연하고 원시 메모리 할당에 사용됩니다.

인터뷰에서는 전통적인 구별을 강조하는 것이 일반적입니다.

  • "new 및 delete는 무료 저장소를 사용하고, malloc 및 free는 힙을 사용합니다."
  • "new 및 delete는 malloc 및 free와 달리 생성자와 소멸자를 호출합니다."

그러나 면접관은 최신 컴파일러가 이러한 구분을 엄격하게 적용하지 않는 경우가 많아 잠재적으로 두 연산자가 동일한 메모리 공간에 액세스할 수 있다는 점을 인정할 수도 있습니다.

위 내용은 C의 Free Store와 Heap 사이에 실제 차이가 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿