我有一个多维数组(矩阵的表示)。我需要归零,而不是整个阵列,而是它的一部分。这样做的最佳方法是什么?我尝试使用memset,但它只是给我一个类型转换错误。
示例
_matrix[row][column] = memset(
_matrix[row][column],
0,
sizeof(_matrix[row][column])
);
声明
float** _matrix = new float*[NUM_ROWS][NUM_COL];
答案 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;