std:: memset
|
헤더 파일에 정의됨
<cstring>
|
||
|
void
*
memset
(
void
*
dest,
int
ch,
std::
size_t
count
)
;
|
||
값 static_cast < unsigned char > ( ch ) 을 dest 가 가리키는 객체의 첫 count 개 문자 각각에 복사합니다. 객체가 잠재적으로 중첩되는 부분 객체 이거나 TriviallyCopyable (예: 스칼라, C 호환 구조체, 사소하게 복사 가능한 타입의 배열)이 아닌 경우, 동작은 정의되지 않습니다. count 가 dest 가 가리키는 객체의 크기보다 큰 경우, 동작은 정의되지 않습니다.
목차매개변수
반환값dest 참고 사항
해당 문제에 대한 해결책으로는 volatile 포인터와 함께
std::fill
사용,
(C23)
memset_explicit()
,
(C11)
memset_s
, FreeBSD의
explicit_bzero
또는 Microsoft의
예제
이 코드 실행
#include <bitset> #include <climits> #include <cstring> #include <iostream> int main() { int a[4]; using bits = std::bitset<sizeof(int) * CHAR_BIT>; std::memset(a, 0b1111'0000'0011, sizeof a); for (int ai : a) std::cout << bits(ai) << '\n'; } 출력: 00000011000000110000001100000011 00000011000000110000001100000011 00000011000000110000001100000011 00000011000000110000001100000011 참고
| |||||||||||||||||||||||||