[memset 함수] memset 함수 주의점
2024. 4. 26. 22:29ㆍ자료구조 및 알고리즘/C++ 코딩테스트 스킬
728x90
memset 함수 사용 시, 주의점
일단 결론부터 말하자면 memset 함수로 초기화 가능한 값은 0, -1, 10101010 01010101과 같이 8bit씩 규칙적으로 잘려지는 수들 뿐인다. 나는 이것도 모르고 memset함수로 배열 전체를 100000을 초기화 시키려다가 낭패를 봤다.
memset함수는 1byte씩 초기화 시킨다. 이 때문에 0을 뜻하는 00000000 -1을 뜻하는 11111111은 온전히 초기화가 되는 것이다.
우리가 1을 초기화 한다고 가정한다면 4byte 초기화 된 00000001의 값을 기대할 것이다. 하지만 memset 함수는 01010101로 초기화 시켜버린다.
나는 항상 memset함수가 for문보다 빠르다고 생각해서 사용해 왔었다. 하지만 이 둘의 성능 이슈 차이는 거의 없다고 한다. 오히려 4byte씩 초기화 시키는 for문이 더 빠르다고 한다.
출처 https://dongkyun-jang.tistory.com/21
728x90
'자료구조 및 알고리즘 > C++ 코딩테스트 스킬' 카테고리의 다른 글
[C++ in Coding Test] std::tie 사용 예시 (0) | 2024.06.06 |
---|---|
[C++ in Coding Test] char형 2차원 배열을 같은 값으로 초기화 하는 방법 (0) | 2024.06.05 |
[fill] fill 함수로 2차원 배열 초기화 (0) | 2024.05.12 |
[CPP 코딩테스트 Skill] make_pair에 대해서 알아보기 (0) | 2024.03.02 |
[C++ 코딩테스트] pair-단일 객체 이동하기 코드에서 사용된 skill (0) | 2024.03.01 |