memset은 배열을 초기화할 때 자주 사용하는 함수이다.
그런데 0이나 -1이 아닌 다른 숫자로 초기화를 하면 엉뚱한 값으로 채워진다.
왜냐하면 memset은 value값을 unsigned char로 바꿔서 다루기 때문에 우리가 의도했던 것과 달라진다.

memset(arr,1,sizeof(arr))로 1로 초기화하려 했지만 int가 아닌 unsigend char로 바꿔서
1바이트마다 1이 들어가기 때문에 전혀 다른 값으로 채워진다.
0,-1이 아닌 특정 값으로 배열을 채우고 싶다면 std::fill이나 std::fill_n을 사용하자.
'C++' 카테고리의 다른 글
| [C++] 우선순위큐에서 Compare 함수객체 사용 시 true면 우선순위가 낮아진다. (0) | 2025.05.13 |
|---|---|
| [C++] 클래스명 객체명();는 디폴트 생성자를 호출하지 않는다. (0) | 2023.02.15 |
| [C++] 매개변수로 이중포인터를 사용해야 할 경우 (0) | 2023.02.01 |
| [C++] 우선 순위 큐 정렬 방법 변경 (0) | 2023.01.31 |
| [C++] 부동 소수점 (0) | 2023.01.10 |