알고리즘/[EXP] 삼성 SW 역량 테스트 C형
포인터의 크기 (Size of Pointer) - 삼성 SW 역량 시험 환경
피로물든딸기
2021. 3. 20. 01:53
반응형
보통 visual studio 환경에서 포인터의 크기는 4byte다.
아래의 코드를 확인해보자.
#include <stdio.h>
int main()
{
putchar('\n');
printf("char : %d\n", sizeof(char));
printf("short : %d\n", sizeof(short));
printf("int : %d\n", sizeof(int));
printf("long int : %d\n", sizeof(long long int));
putchar('\n');
printf("char* : %d\n", sizeof(char*));
printf("short* : %d\n", sizeof(short*));
printf("int* : %d\n", sizeof(int*));
printf("long int* : %d\n", sizeof(long long int*));
return 0;
}
그러나 실제 환경에서는 포인터의 크기가 8byte일 수도 있다.
문제는 삼성 SW 환경에서 포인터의 크기가 8byte인 점이다.
링크에서 확인해보자.
비주얼 스튜디오에서 아래의 코드는 문제없이 실행된다.
#include <stdio.h>
int main()
{
char a[100];
printf("adress a: %X\n", a);
int address = (int)&a[0];
printf("adress a: %X\n", address);
return 0;
}
하지만 시험환경에서는 아래와 같은 에러가 발생한다.
코드를 수정하고 다시 실행해보자.
#include <stdio.h>
int main()
{
char a[100];
printf("adress a: %llX\n", a);
long long int address = (long long int)&a[0];
printf("adress a: %llX\n", address);
return 0;
}
시험 환경의 포인터는 8byte라는 것을 잊지 말자.
반응형