memcpy와 strncpy 차이점은?

memcpy와 strncpy 차이점은 뭔가요?

같이 복사하는건데, 뭐가 차이있는건지 모르겠습니다.

memcpy로 해도 문자열 복사 되는거 확인했습니다.

1개의 답변이 있어요!

  • 안녕하세요

    memcpy와 strncpy는 둘 다 메모리 복사에 사용되지만 주요 차이점은 복사 방식과 사용 용도에 있습니다. memcpy는 메모리 블록을 바이트 단위로 복사하며 복사할 바이트 수를 명시적으로 지정합니다. 따라서 널 종료 문자열이나 데이터의 형식을 고려하지 않고 단순히 메모리의 내용을 복사합니다. 반면 strncpy는 문자열을 복사할 때 사용되며, 지정된 길이만큼 복사하고 원본 문자열이 짧으면 남은 공간에 널 문자를 추가하여 결과 문자열을 항상 널 종료로 보장합니다. 그러나 strncpy는 원본 문자열이 지정된 길이보다 길 경우 널 문자를 추가하지 않으므로 사용 시 주의가 필요합니다. 이처럼 두 함수는 복사하는 데이터의 종류와 방식에서 차이가 있습니다.