|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3299 [복사]
예전부터 참 이해가 안되는 부분이라 이렇게 질문하게 되네요
int arry[5];
sizeof(arry) 20의 값이 나오네요
int *Arry;
Arry = (int *)malloc(sizeof(int)*5);
일단 위의 arry와 같은 배열을 만들었다고 생각합니다.(?)
sizeof(Arry) 4의 값이 나옵니다. malloc이 첫 주소값을 줘서 그런가 봅니다.
Q1) 64비트 운영체제에서는 8바이트라고 들었는데 좀 이상하네요
sizeof(*Arry) 4의 값이 나옵니다. int형으로 잘 만들어 진거 같네요
Q2) 여기서 Arry에 20바이트가 할당되었다는 걸 확인하는 방법이 있을가요?
예전에 찾아보길.. 운영체제가 참조하는 영역을 자동으로 할당하기때문에 윈도우상에선 안될거라는
말도 들어봤는데 사실인가요? |
Hit : 4752 Date : 2012/02/01 06:25
|