티스토리 뷰
memset()는 메모리를 초기화 시켜주는 함수이다.
for() 이나 while과 같이 직접 하나하나 초기화시키는 방법보다 간결하고 빠른 방법으로, 다음과 같이 선언 되어있다.
memset(_Out_writes_bytes_all_(_Size) void * _Dst, _In_ int _Val, _In_ size_t _Size); |
3개의 인자가 필요하며, 첫 번째인자는 첫 번째 주소, 두 번째인자는 1바이트 값, 세 번째인자는 초기화할 크기를 나타낸다.
다음과 같은 코드가 있다.
#include<stdio.h> #include<malloc.h> #include<memory.h> #define SIZE 10 int main(){ int *arr = (int *)malloc(sizeof(int) * SIZE); int i; memset(arr, 0, sizeof(int)*SIZE); for(i=0; i<SIZE; i++) printf("%d\n", arr[i]); free(arr); return 0; }
이 코드는 arr배열은 한 번에 0으로 초기화시킨다.
두번째 인자값은 1바이트로 구성되어있기 때문에 0 또는 -1이 아닌 경우 사용자가 원하는 값이 출력되지 않는다.
하지만, 1바이트로 구성된 char변수를 사용해서 초기화시키게 되면, 사용자가 원하는 문자로 초기화 시킬 수 있게된다.
'Language > C' 카테고리의 다른 글
[C언어] 문자 관련 함수 (0) | 2013.10.09 |
---|---|
[C언어] exit() (0) | 2013.10.09 |
[C언어] 문자열 함수 (0) | 2013.10.05 |
[C언어] void형 포인터 (0) | 2013.10.02 |
[C언어] scanf와 scanf_s의 차이 (1) | 2013.10.02 |
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
- Total
- Today
- Yesterday