Understanding Stack and Heap Usage in C
Managing memory effectively is crucial in C programming. 변수를 어디에서 보관 해야하는지 결정할 때는 스택과 힙 사이를 결정해야합니다.
스택 vs. 힙 : 수명의 문제
는 해당 함수 내에서만 액세스 할 수있는 함수 내에 로컬 변수를 저장합니다. 이러한 변수는 기능 반환시 자동으로 파괴됩니다.
힙 : 객체, 드물게 사용되는 변수 및 선언 기능을 오래 지속 해야하는 큰 데이터 구조
class Thingy; Thingy* foo( ) { int a; // Stack-allocated integer Thingy B; // Stack-allocated Thingy object Thingy *pointerToB = &B; // Pointer to stack-allocated object Thingy *pointerToC = new Thingy(); // Heap-allocated Thingy object // Safe: Heap-allocated Thingy outlives foo() return pointerToC; // Unsafe: Stack-allocated Thingy will be destroyed upon foo() return return pointerToB; }
a와 b는 foo ()에 로컬이기 때문에 스택에 저장됩니다. foo (). 기본 기계. "힙"과 "스택"은 컴파일러 발명품이며 컴퓨터의 메모리는 단순히 일련의 주소입니다. 통화 스택 및 호출 규칙과 같은 개념을 검사함으로써 기계가 기능을 실행하고 메모리를 관리하는 방법을 파악할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3