대한 힙 의미는 무엇입니까?

B

bittware

Guest
안녕하세요 종종 또한 옵션을 구축할 임베디드 프로그램에서 힙 크기를 설정해야 내가 왜 이해 스택과 비교 gurus,,? 대한 힙 의미는 무엇입니까? 감사
 
프로세스에 대한 힙는 정적 변수, 통근 자의 변수, 동적으로 할당된 변수 등 특정 프로세스 (프로그램)을위한 힙 공간이 자동으로 운영 체제에 의해 제공됩니다 포함한 일부 데이터 종류, 보관을위한 공간입니다.
 
확인을 한 번 운영 체제는 메모리에 프로그램을로드하고 변수를위한 이스 페이스를 allocataed있다. 당신은 귀하의 데이터에 의해 사용되는 메모리의 블록으로 끝날 .. 물론 스택은 데이터와 인터럽트 정보를 저장하여 루틴에 사용됩니다 데이터 구조입니다 .. 그래서 스택은 필요에 따라 위쪽으로 성장하는 그 avalaible 메모리 블록의 바닥에서 사용됩니다 .. 지금 프로그램이 스택은 특정 시점까지 사용한 어느 정도 알 수 없습니다. 지금은 동적 할당된 데이터 구조를 가지고 있다고 상상해보세요. 데이터베이스 .. 아니면 기록이나 구조의 컬렉션처럼. 어디에 당신이 그것을 입을 거니 성장하기 위해서는 ... 당신은 그것이 스택에 갖다 난​​ 당신이 안전하지 못할 수 ... 스택 금방 자랄 수 있고 당신의 데이터를 잃어버릴 것입니다. 유일한 안전한 장소 avalaible 메모리 blcok의 상단에있는이 데이터의 할당을 시작하고 스택을 향해 내려 성장하는 원인이 .. 메모리가 충분히있다는 것을 호핑 두 선수가 충돌하지 않습니다 .. 힙 그것이다!
 
대부분의 C 또는 C + + 컴파일러, 힙는 malloc과 새로운 의해 사용되는 메모리의 영역이다. 그것은 일반적으로 스택과 전역 변수 지역에서 별도입니다. 보통, 항상은 아니지만! 조심스럽게 그것이 어떻게 작동하는지 이해하기 위해 컴파일러 / 링커 사용 설명서를 읽어보십시오.
 
[견적 = bittware]에 대한 힙 의미는 무엇입니까? [/ 인용] "힙"은 런타임에 동적으로 할당되는 메모리입니다. 예를 들어 : 당신의 C / C + + 프로그램이 함께 실행 후 이더넷 패킷을받은 여자와 안으로 패킷을 저장하는 응용 프로그램 버퍼를 가지고 있어야합니다. 응용 프로그램을 작성하면 패킷이 동시에 보류 수도 얼마나받을 도무지 알 수 없었다. 결과적으로, 당신은 충분히 큰 버퍼를 만들 수 없습니다 모든 수신 패킷에 대한 이유 (1) 당신이있을 것입니다 얼마나 많은 동시 출원중인 패킷 몰랐다 (2) 큰 버퍼보다​​ 메모리를 더 사용가 없습니다 조잡한 underutilized 수 있습니다. 그럼 패킷을받은 malloc ()를 통해 힙에서 패킷 버퍼 메모리 "를 빌려 ', 그리고 더 이상 필요 없을 때 당신은) 무료 (경유 힙로 빌린 메모리를 반환합니다. 당신 힙로 메모리를 반환하면, 그것은 미래에 필요한 사람에게 "대여"가 될 수 있습니다.
 

Welcome to EDABoard.com

Sponsor

Back
Top