У меня есть массив указателей на структуру, называемую «таблица» (структура называется узлом).Невозможно инициализировать массив указателей в C++
Я объявляю массив как это в классе:
Node * table;
Затем, в другом методе, я инициализировать таблицу:
this->table = new Node [this->length];
И все работает отлично. this-> длина действительный запись, this-> таблица указывает на правый массив, и т.д. Тем не менее, я пытаюсь изменить значение элементов:
for(int i = 0; i < this->length; i++) {
this->table[i] = new Node;
}
Или даже
for(int i = 0; i < this->length; i++) {
this->table[i] = 0;
}
И все начинается с прослушивания. Почему я не могу установить эти указатели на что-нибудь?
Это ошибка, я получаю:
(где линия 15 является линией "this-> таблицы [я] = новый узел;").
Я ненавижу размещать длинные сегменты кода, так вот сокращенный вариант самого кода:
template <class T, class S>
class HashMap {
public:
HashMap();
private:
struct Node;
Node * table;
static const unsigned length = 100;
};
template <class T, class S>
HashMap<T, S>::HashMap() {
this->table = new Node [HashMap::length];
for(int i = 0; i < HashMap::length; i++) {
this->table[i] = new Node;
}
}
template <class T, class S>
struct HashMap<T, S>::Node {
T value;
S key;
Node * next;
};
Нет исследований я делаю говорит мне, что ошибка; любая помощь приветствуется!