在代码中使用 memset(a, 1, sizeof(a));
意图将数组 a
的所有元素初始化为 1,但是 memset
按字节进行赋值操作。对于 int
类型的数组,每个元素占 4 个字节(通常情况),这样使用 memset
会导致每个元素的二进制表示并非是期望的整数值 1(而是二进制层面按字节填充后得到的一个不符合预期的整数值)。
如果要将 int
数组所有元素初始化为 1,正确的做法可以是使用循环来逐个赋值,例如:
```
for (int i = 0; i < 10001; i++) { a[i] = 1; }
```