Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 데브옵스
- devops
- c++ 공부
- window개발
- 정리글
- 데브옵스엔지니어
- 네트워크 비트
- 게이트 웨이
- 비쥬얼스튜디오
- 비트버킷
- github
- c++메모리누수
- c++ 알고리즘 공부
- git
- 메모리누수찾기
- SVN
- 디버깅기능
- 호스트 비트
- C++알고리즘 공부
- 비쥬얼스튜디오기능
- VisualStudio
- 정보누적
- 코린이
- C++
- 자료구조 공부
- 아이구..
- 성능프로파일러
- C++공부
- 서브넷 마스크
- 원격디버거
Archives
- Today
- Total
장비업체의 하급 비전개발자
C++ 스택(Stack)과 힙(Heap)의 차이.. 본문
C++로 프로그래밍을 하지만 정작 메모리관리, 자료구조, 알고리즘 등 자세히 알지 못하는 나는 요즘 공부를 하고있다. 이번에는 스택과 힙의 차이를 프로그래밍 관점에서 끄적여 보려고한다.
코드를 예로 들어보려고한다.
int Num = 9;
int *ptr = nullptr;
ptr = new int;
첫번째 줄의 처럼 로컬 변수 Num을 자동변수(automatic variable) 라고 부르면 스택에 저장된다. 이는 프로그램 실행흐름이 이 변수가 선언된 유효범위에 벗어나면 할당된 메모리가 자동으로 해제된다.
두번째 줄처럼 new 를 사용하면 ptr변수는 스택에 생성되고, nullptr로 초기화후 동적으로 생성된 힙을 가리키게된다.

여기서 스택과 힙의 특징들을 보자면
스택 - 엑세스가 빠르다, 변수의 크기를 조정할 수 없다, CPU에 의해 효율적으로 관리되고 있다.
힙 - 엑세스가 느리다, 변수의 크기를 조정할 수 있다, 메모리를 관리해야한다.
코드를 잘못짜다보면 메모리가 증가하는 경우가 있는데 보통 new 이후 delete를 안해줘서 그런거라는것 정도는 알고 있었는데, 그 이유가 힙에 쌓인 메모리를 관리해주지 않아서 그런 것 이구나 라는 이해를 하게 되었다.
'C++ 공부' 카테고리의 다른 글
| 로컬 네트워크 정리 IPv4란? (0) | 2025.03.14 |
|---|---|
| Visual SVN과 Git의 장단점 (0) | 2025.02.17 |
| C++ 함수 뒤에 const와 함수 앞에 const 의미 (0) | 2023.03.06 |
| C++ pass by value(값 전달 방식) 와 pass by reference(참조 전달 방식) 차이 (0) | 2023.02.27 |