为什么我的数组值会更新为随机值?
Why did my array values get updated to random values?
>我有一个 2 行 3 列的网格。我做一个操作,我不更新网格的任何元素,而只是访问它。不知何故,我的网格已使用随机值更新
#include <iostream>
using namespace std;
int main(){
int grid[2][3]{{1,3,5},
{2,4,-10}};
int row{sizeof(sizeof(grid)/sizeof(grid[0]))};
int col{sizeof(grid[0])/sizeof(int)};
int dp[3][4]{};
for(auto &y:grid){
for(auto x:y){
cout<<x<<"t";
}
cout<<endl;
}
for(int i{1};i<=row;i++){
for(int j{1};j<=col;j++){
dp[i][j]=grid[i-1][j-1]+max(dp[i][j-1],dp[i-1][j]);
}
}
cout<<"++++++++++++++++++++++++"<<endl;
for(auto &y:grid){
for(auto x:y){
cout<<x<<"t";
}
cout<<endl;
}
}
输出:
1 3 5
2 4 -10
++++++++++++++++++++++++
1 4 8
7 4 3
当我像 cpp.sh 这样的在线 IDE 上运行此代码时,我没有遇到问题。但是我正在使用devC ++,也许这是devC ++而不是我的代码的一些特定问题。
您对row
的计算不正确:
int row{sizeof(sizeof(grid)/sizeof(grid[0]))};
这给出了8
的值(在我的机器上,但通常它给出了int
的大小(。你在那里有一个额外的sizeof
。这意味着您将在第二个循环中通过越界索引来调用未定义的行为。
而是做:
int row{sizeof(grid)/sizeof(grid[0])};
根据需要提供2
。
这是一个演示。
相关文章:
- 从C++本机插件更新Vector3数组
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 为什么 Serial.println(<char[]>);返回随机字符?
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- 字符串-C++后显示的随机字符
- 循环中的随机函数
- 在c++构造函数中使用随机字符串生成器
- cmake更新缓存的变量
- 更新到莫哈韦后出现cmath错误
- 使用std::mt19937从字符串中返回一个随机单词
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- 如何在C++中高效地构造随机骰子
- 在类中使用随机生成器时出现性能问题
- OpenMP:并行更新数组总是需要减少数组吗
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 为什么我的变量没有更新,我的 LED 没有亮起?
- 为什么我的数组值会更新为随机值?
- lognormal随机生成器中的参数更新
- 对不可变树进行有效的随机更新
- 为什么要基于随机值更新计时器?