C++ 5

Automatic Storage, Static Storage, and Dynamic Storage

C++에는 대표적으로 3가지 메모리 관리 방식이 있다. Automatic Storage, Static Storage, and Dynamic Storage 세가지 방식이다. 하나 하나 알아보자. Automatic Storage 지역변수(block scope)의 특징이다. 함수 내부에 정의된 변수는 automatic storage를 사용한다. 이 변수를 automatic variables라고 부른다. automatic variables는 함수 안에서 선언되며 함수가 리턴될때 삭제된다. automatic variables는 일반적으로 stack에 저장된다. 프로그램이 실행될때 코드가 진행되며 변수들은 차례차례 메모리의 스택에 저장됨. 즉 변수가 포함된 블럭이 실행될 때 메모리가 할당되고, 블럭이 종료되면 메모..

C++ 2024.02.12

C++ 동적 메모리 할당

메모리할당엔 크게 정적 메모리 할당(static memory allocation)과 동적 메모리 할당(dynamic memory allocation)이 있다. 우리가 평소에 자동으로 할당하는 방식, 예를 들면 int t = 3; 이와 같은 방식을 정적 메모리 할당이라고 한다. 정적 메모리 할당( static memory allocation ) 필요한 메모리의 크기가 컴파일될 때 결정되고 실행 중에는 크기를 변경할 수 없다. 생성과 제거가 자동이다. 변수를 선언하면 자동으로 메모리가 할당이 되고 블록이 끝나면 자동으로 제거된다. 그럼 동적 메모리 할당( dynamic memory allocation )은? 실행 도중에 메모리를 할당받는다. 프로그램 실행 중에 필요한 메모리의 크기를 결정, 시스템(운영체제)..

C++ 2024.02.04

main() 함수란 정확히 무엇일까

전공 수업중 "main함수는 뭐고 왜 return 0; 를 해주는거에요?" 라고 질문을 받았을때 나는 명확하게 답하지 못하고 프로그램이 실행되는 함수라고만 설명하고 넘어간적이 있었다. 이번 기회에 명확하게 정리하고자 이 글을 쓴다. 내가 평소에 생각하고있던 C/C++의 main 함수에 대해 적어보자. 프로그램의 실행을 위한 함수다. return에 의해 종료된다. int와 void를 리턴한다. 우선 main 함수는 응용 프로그램을 실행하면 운영체제에 의해 (해당 응용 프로그램의 부모 프로세스)처음 실행된다. 즉 프로그램의 시작점이다. 모든 프로그램은 main함수를 하나 가지고 있어야한다. 처음 공부를 시작한 사람들이 실수하는 경우가 있는데(나도 처음에 이런 실수를 했다), 위와 같은 이유로 프로젝트 내에는..

C++ 2024.01.07