C++ 변수와 메모리 저장 위치

2014.06.14 09:12

엘카 조회 수:423

참고 문서  
프로세스 :  
     - 실행 상태의 프로그램.   
     - 운영체제에 의해 메모리의 빈 공간을 할당 받아 필요한 내용을 실행하다가  
       프로그램이 종료되면 그 프로세스가 사용하던 메모리 영역을 운영체제에게  
       다시 제어권을 넘긴다. 


매번 초기화 
스택 세그먼트(Stack Segment) 
- 지역 변수 및 시스템의 임시 데이터 할당 영역 
힙 세그먼트(Heap Segment) 
- 동적 메모리할당 영역 
한번만 초기화 
데이터 세그먼트(Data Segment) 
- 전역 변수 및 정적 변수의 할당 영역
코드 세그먼트(Code Segment) 
- 실행 코드 및 함수의 할당 영역 
 

변수는 선언 위치, 변수 선언 시 형 수정자에 따라 메모리의 할당 영역이  
    달라지는 것은 물론 선언된 변수에 접근할 수 있는 영역, 메모리에 남아 
    있는 범위(scope)가 달라진다. → Scope Rule 
C 언어에서 변수 선언은 변수가 사용할 메모리 공간을 할당 받고, 컴파일러 
    에게 그 변수의 형을 알리는 역할을 한다. 
함수 외부에 선언된 변수 : 전역변수 → 데이터 세그먼트에 할당 
static 형 수정자를 사용하여 선언된 변수  
                                      : 정적 변수 → 데이터 세그먼트에 할당 
함수 내부에 선언된 변수 : 지역변수 → 스택 세그먼트에 할당 
   프로세스와 메모리 주소 공간 
번호 제목 날짜 조회 수
43 구조체 포인터 2014.06.15 926
42 구조체의 선언과 데이터 입·출력 2014.06.15 3080
41 함수 포인터 2014.06.15 438
40 배열과 포인터 2014.06.15 402
39 포인터 연산 2014.06.15 383
38 포인터 변수 2014.06.15 411
37 데이터 정렬 2014.06.15 422
36 배열 초기화 2014.06.14 627
35 2차원 배열 2014.06.14 667
34 문자열 처리 함수 2014.06.14 407
33 문자열 입출력 함수 2014.06.14 435
32 접근 수정자 2014.06.14 819
31 전역 변수 2014.06.14 305
30 지역 변수(local variable) 2014.06.14 291
» 변수와 메모리 저장 위치 2014.06.14 423
28 비트 연산자 2014.06.14 284
27 관계 연산자와 논리 연산자 2014.06.14 467
26 증감 연산자 2014.06.14 316
25 printf() 함수의 형식 지정자 2014.06.14 7520
24 열거 형 변수의 이해 2014.06.14 465