반응형

출처:

http://forum.falinux.com/zbxe/index.php?document_srl=408164&mid=C_LIB

http://stackoverflow.com/questions/9782126/why-memory-functions-such-as-memset-memchr-are-in-string-h-but-not-in-stdli


malloc(),free() 등 함수가 stdlib.h 헤더에 있어서 거기에 있는 줄 알았는데 string.h 헤더에 있다.

왜 그런가 하니 string.h는 문자열 관련 함수가 있는데 C에서는 문자열을 문자 배열로 처리했으며,

문자 배열에 접근하기 위해 포인터 개념을 사용했기 때문이다.


좀 더 풀어서 설명하자면 포인터로 문자 배열의 첫번째 요소에 접근한 다음

포인터 연산을 통해 다음 요소에 접근하는 방법이었다.


그리고 memset(), memcpy() 역시 똑같이 포인터를 매개변수로 받아 똑같은 작업을 수행하며,

문자열 뿐만이 아닌 다른 기본형이나 객체 등에도 적용할 수 있다.


정리하면 memset()이나 memcpy() 등은 원래 문자열, 즉 문자 배열 연산을 위해서 만들어진 것이라

stdlib.h가 아닌 string.h 헤더에 존재한다는 것이다.

반응형
Posted by 애콜라이트
l

free counters