반응형
[memset]
memset 함수
- malloc()이나, calloc()에서 할당 받은 메모리를 특정 값으로 초기화 하는 함수.
- 보통 어떤 작업을 하기 전에 NULL로 초기화 할 때 많이 사용된다.
- 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;
}
- 출력
반응형
'Language_ > C 언어' 카테고리의 다른 글
[C언어] scanf()함수에서 &(ampersand)를 쓰는 이유 (4) | 2019.01.21 |
---|---|
[c언어] ctype.h 함수 목록 (0) | 2018.10.31 |
[c언어] scanf와 scanf_s의 차이 (2) | 2018.10.10 |
[c언어] Visual Studio 콘솔창 유지 (0) | 2018.10.06 |
[c언어] Visual Studio 2017 설치하기 (0) | 2018.10.05 |
댓글