본문 바로가기
Language_/C 언어

[c언어] memset 함수에 대하여

by 낭람_ 2018. 11. 24.
반응형

[memset]


memset 함수

- malloc()이나, calloc()에서 할당 받은 메모리를 특정 값으로 초기화 하는 함수.

- 보통 어떤 작업을 하기 전에 NULL로 초기화 할 때 많이 사용된다.

[malloc, calloc함수에 대한 글]

- calloc은 malloc과 memset(void *ptr, 0, size_t size)의 기능이 합쳐진것이다. (0으로 초기화)


memset 함수 형태

- void *memset(void *ptr, int value, size_t size);

- ptr : 메모리의 크기를 변경할 포인터

- value : 초기화 값

- size : 초기화 크기


memset 함수 헤더

- string.h에도 있고, memory.h에도 함수가 있다. (즉, 둘 중에 하나만 써도 되며, 둘 다 써도 함수를 사용할 수 있다.)


memset 예시

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main() {
int *ptr;
ptr = (int*)malloc(10*sizeof(int)); //크기 10 으로 동적할당
for (int i = 0; i < 10; i++) {
*(ptr + i) = i;
printf("[%d] ", *(ptr+i)); // 0, 1, 2, 3, 4, 5 ... 출력
}
printf("\n");
memset(ptr, 0, sizeof(int)*10); // 크기 10 만큼 0으로 초기화
for (int i = 0; i < 10; i++) {
printf("[%d] ", *(ptr+i)); // 0, 0, 0, 0, 0, 0 ... 출력
}
printf("\n");
return 0;
}

- 출력


반응형

댓글