작성
·
257
0
답변 1
0
배열에서는 그 문법이 맞을 수 있지만, 지금은 대상이 포인터입니다.
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) 형을 할려고 하다가 잘못 적은거 같아요 ㅠ