728x90
※ 본 글은 인터넷에서 찾은 내용을 재편집한 겁니다. 원문은 참고사이트의 주소를 참고하세요.
메모리 : 데이터와 명령어를 저장하는 공간을 말한다.
컴퓨터가 어떠한 작업을 할 때 필요한 정보가 메모리에 존재하게 된다.
- 메모리가 클 기준 : HDD > RAM > CACHE > REGISTER
- 실행속도 기준 : HDD < RAM < CACHE < REGISTER
가상메모리 : 다양한 메모리 공간을 단순화시켜 하나의 공간으로 만든 것. 운영체제에서 관리한다.
프로그래밍시 메모리는 4가지가 있다.
Stack 영역 - 지역변수, 사용자 정의함수. 잠깐 사용하고 삭제할 데이터 저장공간,
Heap 영역 - 동적할당. 사용자의 의사에 의해 원하는 데이터를 사용자정의에 의해 할당된 메모리에 저장하거나 해제.
할당시 : malloc, new
해제시 : free, delete
Data 영역 - 전역변수, 지역변수, static으로 선언되는 변수. 프로그램이 종료될 때까지 지워지지 않을 데이터를 저장할 공간.
Code 영역 - Text. 코드를 저장할 공간. Editor에서 작성한 명령어들이 여기에 저장된다.
Stack이 많으면 많을수록 동적할당할 수 있는 수가 줄어들고, Heap 영역이 많으면 많을수록 Stack 지역변수를 선언할 수 있는 크기가 줄어든다.
Class의 멤버함수는 code영역에 할당이 된다.
일반변수처럼 여러개 할당되는 것이 아니라 하나만 할당이 된다.
C언어 에서의 동적할당.
C++ 언어 에서의 동적할당.
참고사이트
http://blog.naver.com/heapskewl73/80150372126
위키피디아-포인터(프로그래밍)
위키피디아-정적메모리할당
위키피디아-동적메모리할당
http://blog.naver.com/0bloodwind0/20127908176
http://msbang.co.kr/80143735099
메모리 : 데이터와 명령어를 저장하는 공간을 말한다.
컴퓨터가 어떠한 작업을 할 때 필요한 정보가 메모리에 존재하게 된다.
- 메모리가 클 기준 : HDD > RAM > CACHE > REGISTER
- 실행속도 기준 : HDD < RAM < CACHE < REGISTER
가상메모리 : 다양한 메모리 공간을 단순화시켜 하나의 공간으로 만든 것. 운영체제에서 관리한다.
프로그래밍시 메모리는 4가지가 있다.
Stack 영역 - 지역변수, 사용자 정의함수. 잠깐 사용하고 삭제할 데이터 저장공간,
Heap 영역 - 동적할당. 사용자의 의사에 의해 원하는 데이터를 사용자정의에 의해 할당된 메모리에 저장하거나 해제.
할당시 : malloc, new
해제시 : free, delete
Data 영역 - 전역변수, 지역변수, static으로 선언되는 변수. 프로그램이 종료될 때까지 지워지지 않을 데이터를 저장할 공간.
Code 영역 - Text. 코드를 저장할 공간. Editor에서 작성한 명령어들이 여기에 저장된다.
Stack이 많으면 많을수록 동적할당할 수 있는 수가 줄어들고, Heap 영역이 많으면 많을수록 Stack 지역변수를 선언할 수 있는 크기가 줄어든다.
Class의 멤버함수는 code영역에 할당이 된다.
일반변수처럼 여러개 할당되는 것이 아니라 하나만 할당이 된다.
C언어 에서의 동적할당.
int* pA;
pA = (int*)malloc(sizeof(int)*10);
pA[0] = 1; // 배열처럼 사용가능.
....
free(pA); // 동적할당 해지
pA = (int*)malloc(sizeof(int)*10);
pA[0] = 1; // 배열처럼 사용가능.
....
free(pA); // 동적할당 해지
C++ 언어 에서의 동적할당.
int* pA;
pA = new int[10]; // 여러개 만들 때
// pA = new int; // 한 개만 만들 때
pA[0] = 1; // 배열처럼 사용가능.
delete []pA; // 여러개 만들었을시 동적할당 해지
// delete pA; // 한 개만 만들었을 때 동적할당 해지.
pA = new int[10]; // 여러개 만들 때
// pA = new int; // 한 개만 만들 때
pA[0] = 1; // 배열처럼 사용가능.
delete []pA; // 여러개 만들었을시 동적할당 해지
// delete pA; // 한 개만 만들었을 때 동적할당 해지.
참고사이트
http://blog.naver.com/heapskewl73/80150372126
위키피디아-포인터(프로그래밍)
위키피디아-정적메모리할당
위키피디아-동적메모리할당
http://blog.naver.com/0bloodwind0/20127908176
http://msbang.co.kr/80143735099
728x90
'Programming > VC++' 카테고리의 다른 글
Visual Studio 2010의 Text Edit에 80번째 칸에 줄 긋기. (0) | 2012.07.30 |
---|---|
Visual Studio 편집기에 스킨 적용하기 (0) | 2012.03.02 |
DebugView 사용하기.- 작성 중 (0) | 2012.03.01 |
[MFC] 버튼 이쁘게 꾸며보자..CButtonST v3.9 (MFC Flat buttons) (0) | 2011.10.13 |
[MFC] MFC 간단하지만 알찬 TIP (0) | 2011.10.13 |
댓글