前言
我们在做算法题是常常会用memset函数对一个数组初始化,一般初始化为1或0时没有问题,即
memset(a, 0, sizeof a);
但是在赋值为其他值时会莫名其妙地出现错误的数字。
memset函数原形
void *memset(void *str, int c, size_t n)
- 功能:复制一个无符号字符 c 到参数 str 所指向的字符串的前 n 个字符。是对较大的结构体或数组进行清零操作的一种最快方法
- 使用前需要引入头文件,C中
#include<string.h>
,C++中#include<cstring>
使用时的注意事项
在使用时我们需要提醒自己memset赋值是按字节赋值, 即将参数化成二进制之后填入一个字节
- 例1: 想要通过
memset(a,1