Я новичок в C++, и я действительно запутался в таких вещах, как указатели и NULL.C++ инициализирует списки как NULL в матрице
Мне нужно установить 2d-массив списков указателей на объект, который я создал. Я хочу, чтобы списки устанавливались в NULL, когда я создал свой объект. У меня возникла ошибка, когда я попытался запустить ее. Я не уверен, что это потому, что я сделал что-то неправильно с указателями или с NULL. Буду признателен за любую помощь.
вот мой код:
GameFullMatrix.h:
private:
std::list<InGame*>** fullMap;
int rows,cols;
GameFullMatrix.cpp:
GameFullMatrix::GameFullMatrix(int _rows, int _cols)
{
this->fullMap = new std::list<InGame*>*[_rows];
for(int i=0; i<_rows; i++)
{
this->fullMap[i] = new std::list<InGame*>[_cols];
for(int j=0; j<_cols; j++)
{
this->fullMap[i][j] = NULL;
}
}
this->rows = _rows;
this->cols = _cols;
}
ошибка я получаю, когда я пытаюсь построить код:
нет соответствия для 'operator =' (типы операндов являются td :: list 'и ' long int ') |
спасибо.
Почему у вас есть двойной указатель на 'std :: list'? Если вам нужны динамические массивы, используйте 'std :: vector'. – NathanOliver
Я не вижу здесь никаких указателей. Вместо этого вы должны использовать 'std :: vector' для' fullMap'. –
Что касается ошибок, нет необходимости в задании. Новый объект 'std :: list' будет пустым. Это также * объект *, а не указатель, и поэтому вы просто не можете попытаться установить объект в 'NULL'. –