스택 영역 메모리의 스택 영역은 함수의 호출과 관계되는 지역 변수 및 매개변수가 저장되는 영역이다. 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다. 스택 프레임 (Stack Frame) 함수가 호출될 때 스택에는 함수의 매개변수, 함수 호출이 끝난 뒤 돌아갈 반환 주소값, 함수 내부 지역 변수가 저장된다. 이렇게 스택 영역에 차례대로 저장되는 함수의 호출 정보를 스택 프레임(Stack Frame)이라고 한다. 이러한 스택 프레임을 통해 함수의 호출이 모두 끝난 뒤에, 해당 함수가 호출되기 이전 상태로 되돌아갈 수 있다. 스택 프레임의 동작 방식 int main(void) { func1(); // func1() 호출 return 0; } void func1() { func2()..
스택(Stack)이란? 쌓아놓은 더미라는 뜻. 데이터를 바닥에서부터 쌓아 올리는 구조. 스택에서 데이터 입/출력은 오로지 스택의 꼭대기에서만 이루어진다. 스택의 맨 아래에 있는 데이터를 꺼내려면 그 위에 있는 데이터를 모두 걷어내야 한다. 이처럼 스택은 가장 마지막에 들어간 데이터가 제일 먼저 나오는 LIFO(Last In - First Out : 후입선출) 형태를 띤다. 요소의 삽입과 삭제가 한쪽 끝에서만 이루어지는 것이 스택의 특징이다. 스택의 연산은 Push, Pop이 있다. Push 함수는 스택에 데이터를 추가한다. // 삽입 void push(StackType *S, element e) { if (is_full(S)) printf("Overflow\n"); else { S->top++;// to..