초보 코린이의 성장 일지

메모리 구조 정리 본문

개인 공부

메모리 구조 정리

코오린이 2022. 12. 29. 20:17

Heap 나 Stack가 내려가고 올라가면서 둘이 만났을때 어느한쪽이라도 그 지점을 넘어선다면 Stack Overflow 가 발생한다

Code 영역부터 위로 올라가는 구조를 띠고 있다.

 

- 더블포인터 -

**ptr를 예로 들면, struct 구조체 안에 만약 *int a 라는 포인터 변수를 생성하고 동적할당하여 함수 void(int *b) 선언을 통해 어떠한 값을 전달 받고자 한다면 *int a는 Stack 영역에 생성되어 동적할당된 변수를 찾아 Heap 영역에 들어가게 된다.

하지만 *ptr로 값을 찾기위해 접근한다면, Heap 영역에 어딘가에 있는 주소를 찾아 내지 못한다. 그럼 계속 할당되어 있는 상태로 남아있으면 메모리 누수가 발생한다 물론 delete로 할당을 해제하면 되지만 그럼 쓰는 의미가 사라지므로 더블포인터(**)를 사용하여 인자를 전달해주면 Heap영역에 주소를 타고 들어가 제대로된 값을 출력할 수 있게 된다.

'개인 공부' 카테고리의 다른 글

OBB 분리축  (0) 2023.01.06
C++ AMP (Accelerated Massive Parallelism)  (0) 2023.01.04
퀵소트 (Quick Sort)  (0) 2023.01.03
데이터베이스 트리거 (DB Trigger)  (0) 2022.12.31
프로그래밍의 발전?  (0) 2022.12.29
Comments