main()
{
int arr[16];
int* nptr;
int* ptr;
ptr = malloc(sizeof(int)*16);
printf("SIZE arr=%d , nptr=%d, ptr=%d\n", sizeof(arr), sizeof(nptr), sizeof(ptr));
}
결과 : SIZE arr=64 , nptr=4, ptr=4
main()
{
char arr[16];
char* nptr;
char* ptr;
ptr = malloc(sizeof(char)*16);
printf("SIZE arr=%d , nptr=%d, ptr=%d\n", sizeof(arr), sizeof(nptr), sizeof(ptr));
}
결과 : SIZE arr=16 , nptr=4, ptr=4
배열 크기는 하나크기*배열크기
포인터 크기는 한 Word(32bits, 4bytes)
main()
{
char arr[16];
char* nptr;
char* ptr;
ptr = malloc(sizeof(char)*16);
printf("SIZE arr=%d , nptr=%d, ptr=%d\n", sizeof(int[16]), sizeof(0), sizeof(int*));
}
결과 : SIZE arr=64 , nptr=4, ptr=4
0은 null pointer를 의미하는듯.
'Program Language > C' 카테고리의 다른 글
#ifdef #else #endif #elifdef (0) | 2012.08.09 |
---|---|
printf debugging (0) | 2012.06.19 |
extern static 정리 (1) | 2012.04.25 |
caller 찾기 (0) | 2012.01.27 |
printf uint64_t uint32_t (0) | 2011.12.01 |
댓글