|
제가 약간 덧붙이겠습니다.
도스일 경우입니다.
int *px; // 스택 영역에 int형 포인터 변수 생성(2바이트)
int x; // 스택 영역에 int형 변수 생성(2바이트)
px = &x; // int형 변수 x의 어드레스를 int형 포인터 변수 px에 대입
// 힙 영역에 메모리(2바이트)를 확보하고 그 영역의 최하위 어드레스를
// 스택 영역에 생성된 (2바이트 짜리 int형)포인터 변수에 대입
int *px = (int*)malloc(sizeof(int));
int *px = new int;
도스에서는 모든 포인터 변수는 2바이트 입니다.
도스상에서는 메모리가 code영역 + data영역(static + heap + stack) 으로 이루어집니다.
프로그램이 메모리에 로드 되었을때의 메모리구조에 관한 자료를 참고해 보시면
포인터를 이해하기기 수월 하실겁니다.
|