Выделение указателей 2d массивов - PullRequest
0 голосов
/ 10 марта 2012

Что я делаю не так? Я выделил с помощью нового, но когда я пытаюсь удалить [], это выдает мне ошибку.

mycode:

int** ma;
int n;
int m;
m = nr_col_lin;
n = nr_col_lin;

ma = new int*[m];
for(i = 0; i < m; i++)
    ma[i] = new int[n];

for (i = 0; i < m; i++)
{
    for (j = 0; j < n; j++)
    {
        ma[i][j] = 0;
    }
}

и сделка:

for(int i = 0; i < m; ++i)
     delete[] ma[i];

delete [] ma;

EDIT:

Я обнаружил проблему ... ее не было в коде ... Я удалял то, что не выделил.

1 Ответ

3 голосов
/ 10 марта 2012

В вашем коде нет абсолютно ничего неправильно. Это замечательно. Пробник должен быть где-то еще, предполагая, что nr_col_lin инициализируется с некоторым допустимым значением, т.е. убедитесь, что оно не 0 или отрицательно. Если это size_t или какое-либо целое число без знака, убедитесь, что m и n больше 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...