얼라리요?

wchar_t buf[50];

 

로 잡은 buf 안에 문자열을 카피해넣고 문자열 마지막 부분의 \0을 지웠을 때 wcslen(buf)하면  \0이 없어서인지 범위를 넘어서 메모리 한참 뒤쪽의 \0에 해당하는 부분까지 읽어들여서 버퍼 잡아놓은 것 이상 값이 나오는 건가?

sizeof(buf) = 100(0x64) (2byte씩 50자)으로 맞게 나오는데, wcslen(buf)= 59(0x3b)(메모리 상태에 따라 다름)로 나온다. _s를 쓰거나 최대사이즈를 정해줘야하나?

 

 

 

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.