内存位置C++范围错误
C++ Range Error at Memory Location?
新手在这里。尝试运行这个简短的程序时,我似乎在内存位置出现范围错误。我不知道这意味着什么,这有点令人沮丧。
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<<"tnn";
sum += previous[i];
此时,尚未为向量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 << "nn";
}
相关文章:
- 错误:未在此范围内声明'reverse'
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- 错误:"imread"未在此范围内声明
- 我在范围内未声明的错误类有问题
- 未在此范围内声明错误 'xy'
- 在C++中使用变量而不是"#define"来指定数组大小是不是一种糟糕的做法?(C错误:在文件范围内
- 运行时错误:矢量下标超出范围:正在检查空集
- 错误:'[' 之前预期的非限定 id 和错误:'users'未在此范围内声明
- 在此范围内未声明错误"Clreol"
- "myClock"未在此范围错误中声明
- 包含来自另一个文件的函数会导致范围错误(openFoam)
- 构造中错误:未在此范围中声明"data"
- 使用基于范围的指针循环和向量时出现C++错误
- DEV C++ 第 69 行 [错误] ISO "for" 范围更改了"i"的名称查找 [-允许]
- C++ 中的类之间的数据重新循环 - 错误:'<class name>'未在此范围内声明
- 使用to_string、reverse、stoi组合的C++反转编号给出运行时错误实例超出范围
- 如何避免指针超出范围(多态性)的C++分段错误
- 代码作为 C 文件工作,但不作为C++文件,错误:'__builtin_types_compatible_p'未在此范围内声明
- 如何修复范围内的字符串声明错误
- 如何修复错误:"vreinterpretq_u32_f64"未在此范围内声明 - 在Android上使用Eigen构建