将多维数组的一部分清零

时间:2011-12-27 22:53:21

标签: c++ pointers memory-management multidimensional-array

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

示例

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

声明

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

2 个答案:

答案 0 :(得分:2)

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

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

但是,在您的情况下,以下内容会更直接:

_matrix[row][column] = 0.0;

答案 1 :(得分:0)

这被标记为C ++,但你并没有真正做任何C ++。为什么不这样做呢?避免所有较低级别的memset和直接数组无意义。

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

快速编写代码以帮助您顺利开展工作:

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