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

2014.06.14 09:12

엘카 조회 수:428

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


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

변수는 선언 위치, 변수 선언 시 형 수정자에 따라 메모리의 할당 영역이  
    달라지는 것은 물론 선언된 변수에 접근할 수 있는 영역, 메모리에 남아 
    있는 범위(scope)가 달라진다. → Scope Rule 
C 언어에서 변수 선언은 변수가 사용할 메모리 공간을 할당 받고, 컴파일러 
    에게 그 변수의 형을 알리는 역할을 한다. 
함수 외부에 선언된 변수 : 전역변수 → 데이터 세그먼트에 할당 
static 형 수정자를 사용하여 선언된 변수  
                                      : 정적 변수 → 데이터 세그먼트에 할당 
함수 내부에 선언된 변수 : 지역변수 → 스택 세그먼트에 할당 
   프로세스와 메모리 주소 공간 
번호 제목 날짜 조회 수
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