dev-ima
이마의 개발 블로그
dev-ima
전체 방문자
오늘
어제
  • 분류 전체보기 (16)
    • deeplearning study (4)
    • toy project (3)
    • algorithm study (0)
    • Portfolio (0)
    • Design Pattern (1)
    • Computer Vision (3)
    • c++ (4)
    • MLops (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Computer Vision
  • static member variable
  • UML 다이어그램
  • 비지도
  • 정적멤버변수
  • C++
  • Data의 종류
  • DEEPLEARNING
  • ML workflow
  • image Enhancement
  • ML시스템
  • static member method
  • ML system
  • cv
  • machine learning
  • 딥러닝 시스템
  • kaggle
  • TITANIC
  • 머신러닝
  • Python
  • Unsupervised
  • Object detection
  • instance segmetation
  • MLops
  • 정적멤버함수
  • Recognition
  • static member
  • UW-Madison GI Tract Image Segmentation
  • DETR
  • Face Recognition

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dev-ima

이마의 개발 블로그

메모리의 stack영역, heap영역
c++

메모리의 stack영역, heap영역

2023. 2. 16. 21:49

정의

우리가 코딩을 할 때, RAM을 접근하여 일부 메모리를 사용하게 된다. 사용하는 영역은 아래와 같은 그림으로 나타낼 수 있다.

메모리 구조(출처: http://www.tcpschool.com/c/c_memory_structure)

코드 영역: 실행할 프로그램의 코드

데이터 영역: 전역(global)변수, 정적(static) 변수

heap영역: 동적 할당

stack 영역: 지역변수, 매개변수, 함수

각 영역마다 저장되는 변수와 저장할 수 있는 용량이 다르다. 코딩을 할 때, 중요하게 여겨야할 영역은 제목에서 봤듯이 stack과 heap영역이다.

stack

stack영역은 우리가 주로 사용하는 함수의 매개변수나 함수내의 지역변수를 할당할 때, 주로 쓰인다. stack영역의 용량은 비교적 크지않아 제귀함수와 같은 stackoverflow에러를 발생시키는 알고리즘을 사용할 때는 주의를 해야한다.

heap

heap영역은 c++기준 new와 delete를 통해 동적할당을 하는 경우 접근하게 되는 영역이다. 이는 stack영역에 비해 용량이 크지만 runtime중 동적할당을 할 수 있기 때문에 메모리누수와 같은 문제가 발생할 수 있다. 

'c++' 카테고리의 다른 글

정적 멤버 함수(static member variable)  (0) 2023.04.05
함수 포인터  (0) 2023.02.15
함수 오버로딩  (0) 2023.02.11
    'c++' 카테고리의 다른 글
    • 정적 멤버 함수(static member variable)
    • 함수 포인터
    • 함수 오버로딩
    dev-ima
    dev-ima

    티스토리툴바