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