Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::memset(3)		      C++ Standard Libary		std::memset(3)

NAME
       std::memset - std::memset

Synopsis
	  Defined in header <cstring>
	  void*	memset(	void* dest, int	ch, std::size_t	count );

	  Copies  the  value  static_cast<unsigned  char>(ch) into each	of the
       first count
	  characters of	the object pointed to by dest. If the object is	a
	  potentially-overlapping subobject or is not TriviallyCopyable	(e.g.,
       scalar,
	  C-compatible struct, or an array of trivially	 copyable  type),  the
       behavior	is
	  undefined.  If  count	is greater than	the size of the	object pointed
       to by dest, the
	  behavior is undefined.

Parameters
	  dest	- pointer to the object	to fill
	  ch	- fill byte
	  count	- number of bytes to fill

Return value
	  dest

Notes
	  std::memset may be optimized away (under the as-if rules) if the ob-
       ject modified by
	  this function	is not accessed	again for the  rest  of	 its  lifetime
       (e.g., gcc bug
	  8537). For that reason, this function	cannot be used to scrub	memory
       (e.g., to fill
	  an array that	stored a password with zeroes).	Solutions for that in-
       clude std::fill
	  with	volatile pointers, C11 memset_s, FreeBSD explicit_bzero	or Mi-
       crosoft
	  SecureZeroMemory.

Example
       // Run this code

	#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';
	}

Output:
	00000011000000110000001100000011
	00000011000000110000001100000011
	00000011000000110000001100000011
	00000011000000110000001100000011

See also
	  memcpy		copies one buffer to another
				(function)
	  memmove		moves one buffer to another
				(function)
				copies the given wide character	to every posi-
       tion in a wide
	  wmemset		character array
				(function)
	  fill			copy-assigns the given value to	every  element
       in a range
				(function template)
	  fill_n		 copy-assigns the given	value to N elements in
       a range
				(function template)
	  is_trivially_copyable	checks if a type is trivially copyable
	  (C++11)		(class template)

http://cppreference.com		  2022.07.31			std::memset(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::memset&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help