Inflearn Community Q&A
2번째 이렇게 하면 이상한 값들이 들어가 있던데 어디서 잘못됐을까요?
Written on
·
284
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
2번 문제를 맨처음 이렇게 해서 풀었는데 값이
이렇게 해서 나왔습니다 혹시 제가 잘못한 부분이 있을까요?
C++
Answer 1
0
Rookiss
Instructor
배열에서는 그 문법이 맞을 수 있지만, 지금은 대상이 포인터입니다.
sizeof(src)에서 src의 크기는 4 or 8 바이트 고정(32비트/64비트에 따라)입니다.
따라서 sizeof(src)/sizeof(char)은 문자열의 길이가 되지 않는게 문제입니다.
지금은 무저건 1이 될듯 하네요. 이 부분은 breakpoint를 잡아서 f10으로 실행해보시기 바랍니다.
두번째로
이 코드에서 src[i] != NULL을 굳이 체크를 하지 않고
dest[i] = src[i]를 해도 어차피 NULL인 경우 알아서 NULL이 들어가니,
굳이 if else 체크를 해줄 필요가 없었을 것 같네요.
결과적으로 NULL로 밀어주는 부분이 실행되지 않으니,
문자열 특성상 NULL을 만날때까지 쭉 출력하게 되어 외계어가 출력되고 있는 것입니다.





src의 글자수 크기만큼 돌아줄려하기 위해서 sizeof(src)/sizeof(char) 형을 할려고 하다가 잘못 적은거 같아요 ㅠ