rhsnfl1122   3년 전

memcpy를 사용해서도 문제를 풀어보고 싶어서 사용했는데,  "채점 중" 에서 바로 틀리는데 반례를 못 찾겠습니다

도와주세요!!!

koosaga   3년 전

읽는 곳과 쓰는 곳의 위치가 겹치기 때문에, 복사를 위해 읽는 과정에서 그 전에 덮어씌워진 값이 잘못 전달될 것 같습니다.

해당 로직을 memcpy로 구현하는 것은 적절치 않아 보입니다!

rhsnfl1122   3년 전

일단 제가 여러개 테스트 해보았을 때 제대로 출력은 되던데

"반례를 콕 찝을 순 없지만 memcpy를 쓸 때 읽는 곳과 쓰는 곳의 위치가 겹치게 되면 어떠한 경우에는 값이 잘못 덮어씌어 질 수 있다" 라고 이해하면 될까요?

koosaga   3년 전

10 9 8 7 6 5 4 3 2 1만 넣어도 안 될 것 같은데, 사실 이건 실행 환경에 따라서 크게 달라질 수 있는 것이긴 합니다.

rhsnfl1122   3년 전

말씀하신 예제는 제 환경(VS2015)에선 되네요 ㅎㅎ;

그리고 memcpy 대신에 memmove를 사용하니 통과가 되었습니다.

답변 감사했습니다!

댓글을 작성하려면 로그인해야 합니다.