2011. 7. 25. 13:59
[C표준함수] memset() 함수
글쓴이 : 정민구 날짜 : 09-03-26 21:19 조회 : 6046 
memset 
메모리를 지정한 문자로 채웁니다. 

Declaration 
void *memset( void *dest, int c, size_t count ) 

Return value 
성공 - 채워진 메모리 주소(dest 매개 변수) 반환 
실패 - 없음 


Parameters 
dest  - 채울 메모리의 주소 
c    - 채울 문자 
count - 채우려고 하는 문자 개수 


Detail descriptions 
memset()는 버퍼를 똑같은 "문자"로 채울 때 사용합니다. 명확하게 문자라고 표현했듯이 단위는 바이트입니다. memset()는 문자를 저장하는 char 배열뿐만 아니라 모든 종류의 배열에 대해서 사용할 수 있습니다. 그러나, 단위가 바이트이기 때문에 배열 요소의 자료형에 따라 세심한 주의가 필요합니다. 

대부분의 배열은 초기 상태로 0을 갖습니다. 그래서, {} 초기화를 사용해서 모든 요소에 대해 0을 지정하도록 합니다. 그러나, {} 초기화는 배열을 선언할 때 한번만 사용할 수 있고, 이후에는 일일이 모든 요소에 대해 0을 넣어줘야 합니다. 이와 같이 모든 요소를 0으로 채울 때, 배열 종류에 상관없이 사용하는 함수가 memset()입니다. 




출처 : 
http://www.itdi.co.kr/onuri/bbs/board.php?bo_table=02_1&wr_id=9

소켓 프로그래밍 당시 이 함수가 계속하여 쓰이기에 알아보았다.
주로

memset(&addr, 0 sizeof(addr));
이런식으로 sockaddr_in addr;로 선언한 주소체계를 addr의 size만큼 0으로 채우는 것을 볼 수 있다. 
Posted by Triany