목록스택 (2)
Coding Memo
먼저 메모리의 구조는 다음과 같다는 것을 확인하고 넘어가자. stack에는 지역변수와 함수 호출 정보가 저장되어 있고 스택의 자료구조로 되어 있다. 여기서 함수 호출 정보가 무엇을 의미하는지 확인해보자. 함수 호출 스택 예시로 사용할 코드이다. int func1(int a) { int b; b = a * a; return b; } int main() { int i = 0; char* s; s = new char[1024]; i = func1(i); delete[] s; return 0; } main 먼저 main 함수가 로드 되었을 때의 메모리 상태이다. main 함수의 지역 변수 i와 s가 스택에 들어가게 된다. frame pointer: 현재 함수의 스택 프레임을 추적하기 위해 컴퓨터 프로세서에서 사..
스택과 힙? 프로그램 실행 중 함수 호출 스택, 변수 데이터 등을 저장하는 메모리 영역(segment)를 말한다. kernel Os가 상주하는 보호된 메모리 영역으로 시스템 리소스를 관리한다. 커널코드, 데이터 구조, 장치 드라이버등의 필수 구성요소를 포함하고 있다. 사용자 프로세스는 일반적으로는 커널 공간에 직접 액세스 할 수 없다. text (code) 프로그램의 실행 코드를 저장하고 있는 부분으로 읽기 전용 메모리 영역이다. 프로세서가 실행하는 명령이 포함되어 있으며, 일반적으로는 한 프로그램의 여러 인스턴스간 공유되어 사용해 자원 절약을 한다. 실행 코드가 있는 부분을 text 메모리 영역에 저장한다. data 프로그램 실행 시작 전에 초기화되는 static 및 global 변수 (정적 변수 및 ..