C++里的memset
在C++中,memset函数可以用于将一段内存区域设置为指定的值。它的函数原型如下:
c
Copy code
void *memset(void *s, int c, size_t n);
该函数的第一个参数是指向要填充的内存区域的指针,第二个参数是要填充的值,第三个参数是要填充的字节数。
例如,以下代码将数组arr中的所有元素设置为0:
c++
Copy code
int arr[10];
memset(arr, 0, sizeof(arr));
注意,memset函数不能用于非POD类型(例如std::string或std::vector),因为它会尝试将非POD类型的对象设置为指定的值,这可能会导致未定义行为。在这种情况下,应该使用其他方法来填充数据,例如循环或std::fill函数。
相关注意点:
- memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的;
- 包含在 <string.h> 头文件中,可以用它对一片内存空间逐字节进行初始化;
原型为 : - void *memset(void *s, int v, size_t n);
- 这里s可以是数组名(数组名为指向数组首元素的指针),也可以是指向某一内在空间的指针;
- v为要填充的值;
- n为要填充的字节数;
- memset是逐字节 拷贝的。
- 在memset使用时要千万小心,在给char以外的数组赋值时,只能初始化为0或者-1。
char str[9];
memset(str,0,8);
int num[8];
memset(num,1,32)