填充多维数组的最佳方法是什么

时间:2021-02-17 08:38:38

标签: c++ variable-length-array

我试图找到用特定值填充二维数组的最佳方法。 有没有更好的方法来循环二维数组? 我试过 memset 不起作用我试过 std::fill 但我怀疑我的代码有问题。

void fillMultipleArray(int m, int n, int value)
{
    int grid[m][n];
    
    memset(grid, 0, sizeof(grid));
    
    
    for (int i = 0; i < m; i++) {
        
        for (int i = 0; i < n; i++) {
            
            std::cout << grid[m][n] << std::endl;
        }
    }    
}

输出

<块引用>

-272632896 -272632896 -272632896 -272632896 -272632896 -272632896 -272632896 -272632896

提前致谢

1 个答案:

答案 0 :(得分:1)

使用 memset 很好,而是仔细查看您的打印代码,它有多个错误

for (int i = 0; i< m; i++) {
    for (int i = 0; i< n; i++) {
        std::cout<< grid[m][n]<< std::endl;
    }
}

应该是

for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
        std::cout<< grid[i][j] << std::endl;
    }
}

这是一个很好的教训,当输出错误时,可能是因为您的计算错误,但也很可能是您打印的结果错误。尽量不要做太多假设。