int arr[10]={0};
int arr[10]={0,};
int arr[10]={1,}; //(X)
=> 결과는 {1, 0, 0, 0, ...}
memset(arr,0,sizeof(arr)); //(O)
memset(arr,-1,sizeof(arr)); //(O)
memset(배열이름, 초기화할 정수, 배열개수 * 배열의 자료형); //1byte씩 초기화 시킨다.
🌟단, 1은 배열이 반드시 char형 이어야만 1로 초기화 가능
0은 1byte에서 0000 0000
4byte로는 0000 0000 0000 0000 0000 0000 0000 0000
-1은 1byte에서 1111 1111
4byte로는 1111 1111 1111 1111 1111 1111 1111 1111
0과 -1은 1byte씩 읽든, 4byte씩 읽든 결과가 같다. 하지만
1은 1byte에서 0000 0001
4byte로는 0000 0000 0000 0000 0000 0000 0000 0001
이므로 1byte씩 읽는 memset으로는 4byte인 int형을 읽었을 때 1로 초기화가 되지 못한다.
따라서 char형 배열로만 1로 초기화가 가능하다.