今天笔者发现了一个很严肃的问题
memset函数不能给数组赋值为1
查阅资料后发现,memset函数是逐个字节填充,计算机中为补码,memset函数只能填充为全0或者全1。
说明,memset函数只能给数组赋值全0,或者全-1.
#include<string.h>
int main(){
int a[101];
memset(a,1,sizeof(a));
for(int i=1;i<=100;i++)
cout<<a[i]<<endl;
return 0;
}
笔者发现打印出来的不是全1,而是不为0的正整数(16843009)!