2011-12-27 62 views
0

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

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

宣言

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

+6

为什么你会指定'memset'的结果呢? – 2011-12-27 22:55:08

+3

omg。你应该考虑在C/C++上写一本好书。 – Anycorn 2011-12-27 22:55:16

+0

你想清零哪一部分?一排?柱?行和列? – Marlon 2011-12-27 22:56:18

回答

2

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

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

然而,在你的情况下将更为直截了当:

_matrix[row][column] = 0.0; 
0

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

我当然认为你应该采取一些以前的意见,真正了解底层C,内存访问等,但在C++中,这可以简单地避免。

的代码快速线,让你用自己的方式:

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