반응형

스택 2

메모리 구조,c언어를 이해하기 위한(텍스트,데이타,bss,힙,스택)

C언어를 잘하고 싶다면 메모리 구조에 대한 이해는 꼭 필요합니다. 물론 다른 언어도 마찬가지지만 메모리에 대한 조작이 비교적 많은 C언어는 메모리 구조는 바로 언어에 대한 이해도를 높여줍니다. C언어로 짠 프로그램이 메모리에 어떻게 로드 되는지 알아보겠습니다. 다음 코드는 주의 깊게 안보셔도 됩니다. 완전 쓸데없는 노가다입니다. 흑 ㅠ 코드를 분석할 필요는 없고, 결과를 보려고 만든 코드니 결과만 알면 됩니다. 변수들의 선언 방식과 위치에 따라서 주소값이 어떤 규칙성이 보일 듯 하죠? 4로 시작하는 주소가 많고, 2,6으로 시작하는 주소도 보이네요. 대충 3개 정도로 나뉘어 보입니다. 실제로는 5개의 영역입니다. 일반적으로 텍스트 영역이 낮은 주소-> 스택영역으로 갈수록 높은주소, 스택을 제외한 나머지 ..

자료구조 스택(stack) C언어

스택(stack)도 연결리스트와 마찬가지로 선형자료구조다. 우리가 알고있는 메모리의 스택도 같은 구조를 가진다. 스택의 특성은 LIFO(Last in First Out)으로 저장되는 구조인데, 스택을 비우는 순서는 가장 마지막으로 넣은 정보부터 빠지게된다. 책을 박스에 차곡차곡 쌓아서 보관해 놓았는데, 다시 책들을 꺼내기 위해서는 맨 위에서부터 빼내야 하는 이치와 같다. 우리가 알고있는 재귀함수를 이용하는 것도 스택의 특성을 사용한다. 좀 더 예를 들어보면 우리가 C프로그래밍을 할 때 가장먼저 호출되는 함수는 main함수다. 하지만 main함수는 가장 마지막에 반환된다. (LIFO == FILO ) 우리가 구현하고자 하는 스택을 간략히 표현해 보겠다. 2014/02/28 - [프로그래밍/C언어] - 동적..

반응형