• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

19:24 질문드립니다.

21.06.30 02:02 작성 조회수 174

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

Ad Astra님의 프로필

Ad Astra

2021.08.10

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

1

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

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

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

0

서켠님의 프로필

서켠

질문자

2021.06.30

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