【问题标题】:How to access individual elements in a 2d array c++如何访问二维数组c ++中的单个元素
【发布时间】:2017-04-02 19:44:42
【问题描述】:

基本上,我有一个二维数组,我想使用 for 循环填充这些元素。这是一个粗略的设置(不起作用):

int grid[rows][columns];
for (int i=0; i < rows; i++){
    grid[rows][i] = 0;
    for (int j=0; j < columns; j++){
        grid[columns][j] = 0;
    }
}

我有一个用户确定的工作网格。因此,基本上,如果用户输入 x x x 的行和列,它将起作用。问题出现是因为它会在网格的共振峰中打印出随机数。所以有时它会打印出来:

4 4 4 4

4 4 4 4

4 4 4 4

我试图得到一个看起来像这样的网格:

0 0 0 0

0 0 0 0

0 0 0 0

我先创建二维数组,然后尝试用 0 填充元素。这就是我使用 for 循环的原因。结果是用 0 填充每个元素。它只是由于某种原因不起作用。我不知道...

任何建议都会有所帮助!谢谢你

【问题讨论】:

  • 使用您的调试器,在您分配 0 的每一行处停止。通过检查您正在使用的索引的值,检查并记下您分配 0 的数组中的位置。当您注意到您正在重新分配相同的目标索引时,您的错误应该非常明显。
  • 提示,检查您是否在数组范围内写入。

标签: c++ arrays


【解决方案1】:

您正在错误地访问二维数组。试试这个:

int grid[rows][columns];

for (int i=0; i < rows; i++)
{
    for (int j=0; j < columns; j++)
    {
        grid[i][j] = 0;
    }
}

至于为什么你得到非零数据,可能是因为二维数组中有随机数据,要么是你的代码遗留下来的,要么是因为它从未初始化过。

【讨论】:

    猜你喜欢
    • 2011-10-24
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多