작성한 질문수
홍정모의 따라하며 배우는 C언어
10.13 포인터의 배열과 2차원 배열
해결된 질문
작성
·
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이요
좋은 질문입니다. 이럴때는 다양하게 상황을 바꿔가면서 실험 해보시고 그 결과로써 이유를 추론해보면서 공부하시는게 정석입니다. 예를 들어서 아래와 같은 경우로 테스트해보세요.
char* name[] = {"hello", "hi", "ho", "Waiting for something great!"}; printf("%zd\n", sizeof(name));
그냥 배열이 아닌 포인터 배열이라는 것에 초점을 두었더니 해결했습니다. 감사합니다.