使用memset初始化int数组

时间:2017-02-18 07:21:43

标签: c++ memset

#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 ?????

1 个答案:

答案 0 :(得分:2)

memset设置单个字节,而不是整个整数,通常跨越四个字节。如果你查看数字16843009的位,就可以得到四个字节值为1.正如Ed Heal所说,不要使用memset使事情变得复杂。改为使用循环。