2010-07-30 4 views
2

일부 시스템에서는 스택이 위쪽 방향으로 증가하는 반면 힙은 아래쪽 방향으로 증가하고 일부 시스템에서는 스택이 아래쪽 방향으로 증가하고 힙이 위쪽 방향으로 증가합니다. 그러나, 어느 것이 최고의 디자인입니까? 이 두 가지 특정 디자인에 프로그래밍 이점이 있습니까? 가장 보편적으로 사용되는 것은 무엇이며 왜 단일 접근 방식을 따르는 것이 표준화되지 않았습니까? 특정 시나리오에 유용합니다. 그렇다면 무엇입니까?스택 성장 및 힙 증가 방향

+0

이 숙제입니까? – NullUserException

+0

아닙니다. 나는 메모리 레이아웃을 이해하고 있었고이 쿼리가 나타났습니다! –

+0

일반적으로 힙은 커지지 않습니다. 실제로 스택의 성장 방향에만 관심이 있습니다. 이는 아키텍처에 따라 다릅니다. –

답변

0

Miro Samek과 다양한 임베디드 전문가의 작품을 읽었으며 임베디드 시스템에서 동적 할당을 선호하지 않는 것 같습니다. 이것은 아마도 메모리 누수 가능성과 복잡성 때문일 것입니다. 절대적으로 실패 할 수없는 프로젝트가 있다면, 아마도 Malloc을 사용하지 않으려 고하므로 힙은 작을 것입니다. 다른 비 핵심 시스템은 그 반대 일 수 있습니다. 나는 표준 접근법이있을 것이라고 생각하지 않는다.

0

아마 프로세서에만 의존하고있을 것입니다 : 스택이 위 또는 아래로 이동하는 것을 지원합니까?

1

매우 단순한 구현에서는 방향으로 "힙"만 힙니다. Paul R.이 언급 한 바와 같이 스택이 성장하는 방향은 하드웨어에 의해 정의됩니다. Intel CPU의 경우 항상 더 작은 주소 (예 : 'Up')로 이동합니다.