将多维数组的一部分归零

Zero out a section of a multidimensional array

本文关键字:一部分 归零 数组      更新时间:2023-10-16

我有一个多维数组(矩阵的表示)。我需要归零,不是整个数组,而是它的一部分。做这件事的最好方法是什么?我试过使用memset,但它只是给我一个类型转换错误。

_matrix[row][column] = memset(
                        _matrix[row][column], 
                        0, 
                        sizeof(_matrix[row][column])
                    );
声明

float** _matrix = new float*[NUM_ROWS][NUM_COL];

memset()的第一个参数是位置为0的地址。所以:

memset(&_matrix[row][column], ...)

然而,在你的情况下,下面的语句要简单得多:

_matrix[row][column] = 0.0;

这被标记为c++,但你并没有真正做任何c++。为什么不这么做呢?避免使用所有低级的memset和直接数组。

我当然认为你应该接受前面的一些建议,真正学习底层的C,内存访问等,但在c++中,这可以简单地避免。

一段快速的代码行,让你继续前进:

typedef std::vector<std::vector<int> > Array2D;