gpt4 book ai didi

内存位置的 C++ 范围错误?

转载 作者:行者123 更新时间:2023-11-28 00:40:26 25 4
gpt4 key购买 nike

这里是新手。尝试运行这个短程序时,我似乎在内存位置出现范围错误。我不知道这意味着什么,而且有点令人沮丧。

int main()
{
int grains_current = 1;
vector <int> previous;
int sum = 0;
int i = 0;

for (int i = 0; i<10; ++i) sum += previous[i];
previous.push_back(grains_current);

grains_current = grains_current*2;

if (sum >= 10)
cout<<i<<"\t\n\n";

最佳答案

sum += previous[i];

此时, vector previous 还没有被赋予任何值,所以你会得到未定义的行为来访问这个超出范围的地址。

更新:这是我认为您的代码应该是这样的:

for (int i = 0; i < 10; ++i)
{
previous.push_back(grains_current);
sum += previous[i];

grains_current *= 2;

if (grains_current >= 1000)
std::cout << sum << "\n\n";
}

关于内存位置的 C++ 范围错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com