C++ 변수와 메모리 저장 위치
2014.06.14 09:12
참고 문서 |
---|
프로세스 :
- 실행 상태의 프로그램.
- 운영체제에 의해 메모리의 빈 공간을 할당 받아 필요한 내용을 실행하다가
프로그램이 종료되면 그 프로세스가 사용하던 메모리 영역을 운영체제에게
다시 제어권을 넘긴다.
매번 초기화
스택 세그먼트(Stack Segment)- 지역 변수 및 시스템의 임시 데이터 할당 영역힙 세그먼트(Heap Segment)- 동적 메모리할당 영역
한번만 초기화
데이터 세그먼트(Data Segment)- 전역 변수 및 정적 변수의 할당 영역코드 세그먼트(Code Segment)- 실행 코드 및 함수의 할당 영역
변수는 선언 위치, 변수 선언 시 형 수정자에 따라 메모리의 할당 영역이
달라지는 것은 물론 선언된 변수에 접근할 수 있는 영역, 메모리에 남아
있는 범위(scope)가 달라진다. → Scope Rule
C 언어에서 변수 선언은 변수가 사용할 메모리 공간을 할당 받고, 컴파일러
에게 그 변수의 형을 알리는 역할을 한다.
함수 외부에 선언된 변수 : 전역변수 → 데이터 세그먼트에 할당
static 형 수정자를 사용하여 선언된 변수
: 정적 변수 → 데이터 세그먼트에 할당
함수 내부에 선언된 변수 : 지역변수 → 스택 세그먼트에 할당
프로세스와 메모리 주소 공간
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
43 | 구조체 포인터 | 2014.06.15 | 931 |
42 | 구조체의 선언과 데이터 입·출력 | 2014.06.15 | 3084 |
41 | 함수 포인터 | 2014.06.15 | 447 |
40 | 배열과 포인터 | 2014.06.15 | 406 |
39 | 포인터 연산 | 2014.06.15 | 384 |
38 | 포인터 변수 | 2014.06.15 | 414 |
37 | 데이터 정렬 | 2014.06.15 | 424 |
36 | 배열 초기화 | 2014.06.14 | 630 |
35 | 2차원 배열 | 2014.06.14 | 670 |
34 | 문자열 처리 함수 | 2014.06.14 | 412 |
33 | 문자열 입출력 함수 | 2014.06.14 | 442 |
32 | 접근 수정자 | 2014.06.14 | 824 |
31 | 전역 변수 | 2014.06.14 | 308 |
30 | 지역 변수(local variable) | 2014.06.14 | 295 |
» | 변수와 메모리 저장 위치 | 2014.06.14 | 428 |
28 | 비트 연산자 | 2014.06.14 | 288 |
27 | 관계 연산자와 논리 연산자 | 2014.06.14 | 472 |
26 | 증감 연산자 | 2014.06.14 | 319 |
25 | printf() 함수의 형식 지정자 | 2014.06.14 | 7522 |
24 | 열거 형 변수의 이해 | 2014.06.14 | 465 |