본문 바로가기
알고리즘/[EXP] 삼성 SW 역량 테스트 C형

포인터의 크기 (Size of Pointer) - 삼성 SW 역량 시험 환경

by 피로물든딸기 2021. 3. 20.
반응형

삼성 C형 전체 링크

 

보통 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라는 것을 잊지 말자.

반응형

댓글