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

9988kyunghyun님의 프로필 이미지
9988kyunghyun

작성한 질문수

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

4.4 strlen() 함수

Stolen 마지막부분 오류 질문입니다

작성

·

239

1

1703583497713.png아무리봐도 똑같이 따라쓴것 같지만 오류가 있다고 뜹니다 ㅠㅠ

답변 1

1

안녕하세요, 답변 도우미 Soobak 입니다.

 

오류의 내용은 메모리 접근 위반에 대한 내용입니다.

질문자님께서 첨부해주신 이미지를 보면 다른 함수들은 노란색으로 강조된 반면, malloc() 함수만 하얀색으로 강조되어 있네요. (코드를 쉽게 읽고 이해할 수 있도록 함수, 변수, 키워드, 주석 등의 색상을 다르게 구분하여 표시해주는 Syntax Highliting 기능)


한 번, malloc() 함수가 정의되어 있는 헤더 파일 stdlib.h 을 포함시켜 보세요. (#include <stdlib.h>)
환경에 따라서, string.h 헤더에 해당 헤더가 포함되어 있는 경우가 있지만, 그렇지 않은 경우도 있습니다.

보다 자세한 내용은 교수님께서 설명해주신 것처럼, 이후에 '메모리 동적 할당' (강의 12.13 메모리 동적 할당) 을 배우시면서 보다 자세하게 학습하시게 됩니다.

 

해당 부분에서 중요한 부분은 printf(%zu %zu\n", sizeof(str5), strlen(str5)); 에서, sizeof(str5) 의 출력 결과가 4 로, 정적으로 할당한 배열의 경우처럼 배열의 크기 100 이 출력되는 것이 아니라 '포인터 변수 자체의 크기' 가 출력된다는 점입니다.
이 부분이 아직 잘 이해가 되지 않으시더라도, 앞으로 조금씩 익숙해지며 학습하신다는 느낌을 가지시는 것을 추천드립니다. 교수님께서 강의를 진행하시는 동안 계속해서 강조해주시는 개념 중 하나입니다.

 

9988kyunghyun님의 프로필 이미지
9988kyunghyun
질문자

답변 하나하나 친절하게 해주셔서 감사합니다!

9988kyunghyun님의 프로필 이미지
9988kyunghyun

작성한 질문수

질문하기