한줄 코드에 감춰진 잠재된 문제점이 있나요..??

paeksj98의 이미지


memcpy(&cBuff[3], &cBuff[9], nLength);

위 코드에 문제가 있을수 있을까요.

예전에는 항상 tmp에 넣었다가 그걸 다시 buff로 복사했었는데.

문득 위와 같이 하면 되지 않을까 싶어 해보니 잘작동 되네요.

위와같은 코드에 문제 소지가 있는지 궁금합니다.

익명 사용자의 이미지

man page 를 보니 아래 같은 문구가 있네요.

If copying takes place between objects that overlap, the behavior is undefined.

nLength 값에 따라서 정의되지 않은 동작을 할 위험성이 있네요.

Hyun의 이미지

저런 경우는 memmove 함수를 쓰는 것이... 좋을 듯.