Обнулить раздел многомерного массива - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть многомерный массив (представление матрицы).Мне нужно обнулить не весь массив, а его часть.Какой лучший способ сделать это?Я попытался использовать memset, но он просто выдает ошибку при типизации.

Пример

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

Объявление

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

Ответы [ 2 ]

2 голосов
/ 28 декабря 2011

Первым параметром memset() является адрес местоположения до нуля.Итак:

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

Однако в вашем случае следующее будет гораздо проще:

_matrix[row][column] = 0.0;
0 голосов
/ 28 декабря 2011

Это помечено как C ++, но вы на самом деле не делаете C ++. Почему бы просто не сделать это? Избегайте всех низкоуровневых memset и чепухи с прямым массивом.

Я, конечно, думаю, что вы должны принять некоторые из предыдущих советов и по-настоящему изучить базовый C, доступ к памяти и т. Д., Но в C ++ этого можно просто избежать.

Быстрая строка кода, которая поможет вам в пути:

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