#include<string.h> // #include<memory.h> 도 괜찮습니다.
#include<stdio.h>
int main(void)
{
char arr1[] = "blockdmask blog";
memset(arr1, 'c', 5 * sizeof(char));
printf(arr1);
return 0;
}
#include<string.h>
#include<stdio.h>
int main(void)
{
int arr[5];
// 0 이 아닌 다른 값으로 세팅
memset(arr, 1, sizeof(arr));
for (int i = 0; i < 5; ++i)
{
printf("%d ", *(arr + i));
}
return 0;
}
memset을 사용할 때 0이 아닌 int형 수를 넣어주면 예상할 수 없는 값으로 세팅된다.
memset함수는 1바이트 단위로 값을 초기화하는데 0은 1바이트로든 4바이트로든 0이지만 0외의 int형은 1바이트일때와 4바이트일 때가 다르게 확인되므로 0외의 숫자로 초기화 될 수 없다.
char형은 1바이트로 표현가능 하기 때문에
memset으로 하는 배열 초기화 에선 int형 0 과 char형 문자로 초기화 할 수 있다.
출처: https://blockdmask.tistory.com/441 [개발자 지망생]
[자료구조]heap (0) | 2022.02.16 |
---|---|
다익스트라 알고리즘 (0) | 2022.02.16 |
C언어 문자 배열 qsort (0) | 2022.01.18 |
BFS 너비 우선 탐색 알고리즘 (0) | 2022.01.10 |
DFS 깊이 우선 탐색 (0) | 2022.01.03 |