今天笔者发现了一个很严肃的问题
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)!

本文揭示了memset函数在数组赋值时的一个常见误解。通过实验发现,memset无法直接将数组元素赋值为1,只能填充全0或全-1。文章详细解析了这一现象背后的原因,并提供了正确理解和使用memset的方法。
1235

被折叠的 条评论
为什么被折叠?



