FEEL

memmove, memcpy에서 왜 dst, src 둘다 null일때 segmentation fault가 발생하지 않을 까? 본문

공부/C 언어

memmove, memcpy에서 왜 dst, src 둘다 null일때 segmentation fault가 발생하지 않을 까?

1.Feel5 2023. 6. 17. 22:57
반응형

memmove, memcpy함수에 대해 찾아보면 dst, src가 null인 상황일 때 같은 것을 고려하고 만들어진 함수들은 아니다.

따라서 null일 때는 segmetation fault가 발생한다. 근데 왜? 둘다 null일 때는 에러가 발생하지 않는데 그 이유에 대해 궁금해졌다.

그래서 이 함수가 어떻게 구현되어 있는지 찾아보았다.

dst == src || len == 0인 상황에서는 바로 dst를 반환해버린다.

즉 dst와 src가 서로 같을 때는 굳이 복사하는 과정을 수행할 필요가 없기 때문에 dst를 반환해버린다.

내가 생각하기에는 여기서 예기치 못한 동작이 발생한 것이다.

둘다 0(NULL)일 때 이부분이 실행되기 때문에 오류 없이 함수가 정상적으로 종료 되어 버린다.

반응형

'공부 > C 언어' 카테고리의 다른 글

size_t 자료형과 unsigned 자료형  (0) 2023.06.17
문자열 입력 함수 scanf, gets, fgets  (0) 2020.11.22
Comments