c ++ fill调用正在创建错误

c++ fill call is creating an error

我是 c++ 的新手,每次调用 fill 时我的程序似乎都停止工作。

void go()
{
    int ints[5];
    cout<<"here";
    fill(ints,ints+sizeof(ints),0);
    cout<<"here2";
}

奇怪的是,它同时打印 here1 和 here2,然后失败了。如果我注释掉 fill 调用,错误将不再发生。我确定这只是我做的不正确,因为我是新手,但我们将不胜感激任何帮助。

sizeof returns 给定类型的大小 char 的数量,而不是数组中元素的数量(即你的单位有误)。所以,ints+sizeof(ints)是不正确的,应该是ints + 5.