У меня есть двойной массив, выделенный указателем на указатель.
// pointer to pointer
int **x = new int *[5]; // allocation
for (i=0; i<5; i++){
x[i] = new int[2];
}
for (i=0; i<5; i++){ // assignment
for (j=0; j<2; j++){
x[i][j] = i+j;
}
}
for (i=0; i<5; i++) // deallocation
delete x[i];
delete x;
Я пытаюсь сделать это, используя unique_ptr
:
std::unique_ptr<std::unique_ptr<int>[]> a(new std::unique_ptr<int>[5]);
for (i=0; i<5; i++)
a[i] = new int[2];
но продолжал получать сообщение об ошибке, говорящее, что никакой оператор = не соответствует этим операндам
. Что я здесь делаю неправильно?