본문 바로가기

코딩/C++,C

[C/C++] 동적할당, 정적할당

ghgus0702.tistory.com/11

 

동적할당과 정적할당

메모리 : 데이터와 명령어를 저장하는 공간을 말한다.​ 프로그래밍시 메모리를 4가지있다. Stack 영역 - 지역변수, 사용자 정의함수, 잠깐 사용하고 삭제할 데이터 저장공간. Heap 영역 - 동적할

ghgus0702.tistory.com

<from다른 블로그>

auto라는 변수는 일반적으로 자동변수를 의미합니다. 자동변수는 무엇이냐 하면

프로그램이 종료하기 전에지워지는순간자동으로 자신의 주소를 반납하는 변수를 의미합니다.

일반적으로 메모리들은 프로그램이 종료하는 순간 메모리를 반납합니다.

그러나 자동변수는 프로그램이 종료하기 전에도 함수 블록이 끝나면 알아서 메모리를 반납합니다.

 

auto라는 선언 자체는 스택영역에 메모리를 할당하겠다는 뜻과 같습니다.

그러나 일반적인 지역변수의 디폴트값은 auto(자동변수)이므로 굳이 auto를 선언할 필요가 없습니다.

그렇기 때문에 앞으로도 영원히 auto를 쓸필요 자체가 없습니다. 

Q: 정적할당된 변수는 스택에 저장된다는데 정적할당은 컴파일할 때 그 공간의 크기가 정해진다며. 그런데 스택에는 수시로 변수가 생겼다가 없어졌다가 한다. 그런데 어떻게 컴파일 타임 때 크기를 결정한다는 말인가?

혹시 모든 stack변수들만큼의 공간을 할당해놓고 없애면서 사용하는 것인가?

 

<아래의 블로그가 정말 잘 설명해주고 있음>

m.blog.naver.com/PostView.nhn?blogId=eludien&logNo=221462352935&proxyReferer=https:%2F%2Fwww.google.com%2F

 

12. 메모리 영역, 동적 할당, 정적 할당 / Code, Data, Heap, Stack / malloc, free, new, delete

바로 앞의 '주소 반환' 포스팅에서 우린 동적 할당된 메모리의 주소 반환에 대해 공부했다. 하지...

blog.naver.com

jinshine.github.io/2018/05/17/%EC%BB%B4%ED%93%A8%ED%84%B0%20%EA%B8%B0%EC%B4%88/%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0/

 

[컴퓨터 기초] 메모리구조(Memory Structure) - jinShine

프로그램 실행 순서 메모리 영역에 관해 이야기하기 전에 어떤식으로 프러그램이 실행되는지 과정을 살펴 보겠습니다. 프로그램의 정보를 읽어 메모리에 로드되는 과정을 보실 수 있으실텐데,

jinshine.github.io

 

 

'코딩 > C++,C' 카테고리의 다른 글

[c/c++]gcc?  (0) 2021.03.06
[c/c++] "->"  (0) 2021.03.06
[C/C++]객체의 크기  (0) 2021.03.04
[C++] 찾아볼 것들  (0) 2021.02.21
[C++]헤더파일과 cpp파일의 동작방법  (0) 2021.02.21