memset 사용 시 주의할 점

2019. 7. 3. 11:49알고리즘/암기

1바이트를 초과하는 변수를 memset 함수를 이용하여 초기화할 때 주의해야 한다

만일 int 변수를 memset에 10이라는 값을 초기화하고 싶어 memset(&a, 10, sizeof(a))라고 하면 10이라는 값은 한 바이트마다 들어가는 값이다

따라서 int는 4바이트기 때문에 0x0A0A0A0A라고 들어가게 된다. 단 -1과 0은 알맞게 들어간다

 

따라서 int 배열을 일정한 값으로 초기화하고 싶다면 algorithm 헤더파일에 있는 fill 함수를 사용하는 것이 올바른 방법이다