#include<bits/stdc++.h>
using namespace std;
int main()
{
int arr[1010];
memset(arr,1,sizeof(arr));
cout<<arr[1]<<endl;
return 0;
}
我正在尝试初始化值为1的数组。 我希望我的o / p为1.但我得到一些随机数(16843009)作为程序的o / p。我不明白代码有什么问题???
当我尝试使用值-1和0初始化数组时,我得到了预期的答案。是否可以使用memset来初始化int数组,其值不是-1和0 ?????
答案 0 :(得分:2)
memset设置单个字节,而不是整个整数,通常跨越四个字节。如果你查看数字16843009的位,就可以得到四个字节值为1.正如Ed Heal所说,不要使用memset使事情变得复杂。改为使用循环。