динамически размещать двухмерный массив, где каждая строка содержит переменное количество элементов и освобождает его в c ++ - PullRequest
0 голосов
/ 08 декабря 2010

Как я могу динамически выделить двумерный массив, где каждая строка содержит переменный элемент?Как я могу освободить эту память?

Ответы [ 3 ]

3 голосов
/ 08 декабря 2010

На самом деле вам, вероятно, нужен вектор векторов, что-то вроде этого:

std::vector<std::vector<int> > vector_2d;

Таким образом, вы получите выгоду от автоматического управления памятью вектора, а не от ручного управления памятью массивауказателей на массивы данных.

0 голосов
/ 08 декабря 2010

Просто ради полноты:

int ** a;
a = new (int*)[5];

for(int i = 0; i<5; i++)
{
    a[i] = new int[x]; //where x is the size of this row
}

for(int i = 0; i<5; i++)
{
    delete[] a[i];
}

detete[] a;
0 голосов
/ 08 декабря 2010

Вам нужно будет использовать указатели:

int ** a;
a = new (int*)[5];
for(int i = 0; i<5; i++)
{
    a[i] = new int[x]; //where x is the size of this row
}

Нечто подобное должно работать, но я не проверял.

...