인프런 커뮤니티 질문&답변

김복두님의 프로필 이미지
김복두

작성한 질문수

홍정모의 따라하며 배우는 C언어

10.13 포인터의 배열과 2차원 배열

19:24 질문드립니다.

해결된 질문

작성

·

240

0

강의 내용을 토대로 name의 사이즈를 구하고 싶어서 코드를 만들어봤는데요.

char* name[] = {"hello", "hi"};

printf("%zd\n", sizeof(name)}; 

제가 생각했던 것은  'H', 'e', 'l', 'l', 'o', '\0'  ,  'h', 'i', '\0'

널 문자를 포함한 총 9개의 문자와 1byte(char타입형)을 곱해

9byte라고 생각했는데 8바이트가 나옵니다.. 왜 그런지 알 수 있을까요??

답변 3

1

포인터니까 4*2=8이요

1

홍정모님의 프로필 이미지
홍정모
지식공유자

좋은 질문입니다. 이럴때는 다양하게 상황을 바꿔가면서 실험 해보시고 그 결과로써 이유를 추론해보면서 공부하시는게 정석입니다. 예를 들어서 아래와 같은 경우로 테스트해보세요.

char* name[] = {"hello", "hi", "ho", "Waiting for something great!"};

printf("%zd\n", sizeof(name)); 

0

김복두님의 프로필 이미지
김복두
질문자

그냥 배열이 아닌 포인터 배열이라는 것에 초점을 두었더니 해결했습니다. 감사합니다.

김복두님의 프로필 이미지
김복두

작성한 질문수

질문하기