스택 프레임
-
함수 호출시 매개변수 전달 방법 3가지Programming🧑💻/Cpp 2025. 2. 5. 23:29
값에 의한 전달 ( Pass by Value ) 함수 호출시 매개 변수의 복사본이 호출된 함수의 스택 메모리에 생성됩니다. 원본 데이터와 완전히 독립된 메모리 공간을 사용합니다. 함수 종료시 복사본은 스택에서 자동으로 해제 됩니다. void processData(int data) { data = data + 1; // 값을 복사했기 때문에 원본 데이터에 영향 없음}int main() { int value = 5; processData(value); print("value=%d",value); // value 값은 여전히 5} 포인터에 의한 전달 ( Pass by Pointer )메모리 주소값만 복사되어 전달됩니다.포인터 자체는 호출된 스택 프레임내에 생성되지만 크기는 항상 고정됩..
-
콜 스택 동작을 통해 알아보는 함수 호출Programming🧑💻/Cpp 2025. 2. 4. 23:29
콜 스택이란?프로그램이 실행되어 메모리에 올라오면, 운영체제는 해당 프로그램을 프로세스라는 실행단위로 관리하면서 필요한 컴퓨팅 자원 (CPU 시간, 메모리 등) 을 할당합니다. 각 프로세스는 자신만의 독립된 메모리 공간을 할당받는데, 이를 프로세스의 메모리 구조라고 합니다. 프로세스는 뭘까?프로그램은 컴퓨터가 특정 작업을 수행하기 위해 작성된 명령어들의 집합입니다. 쉽게 말해 우리가 하드디스크에 저장해둔 실행 파일이라고 할 수 있죠. 예를 들어 워드나 크롬 브라우저 같은people-analysis.tistory.com 프로세스의 메모리는 크게 다음과 같은 영역으로 구분됩니다. 코드(텍스트) 영역: 실행할 프로그램의 코드가 저장되는 영역데이터 영역: 전역변수와 정적(static) 변수가 저장되는 영역힙(H..