Exception thrown at 0x00007FF7C7476EC9 in ms_word.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF
при вводе слова,возникает ошибка, помогите пожалуйста.
#include <iostream>
#include <string>
using namespace std;
struct node
{
bool is_word;
struct node* children[27];
};
int main()
{
struct node* root = new node;
string word;
while (cin >> word)
{
node* ptr = root;
for (int i = 0; i < word.size(); i++, ptr = ptr->children[word[i] - 'a']) {
if (ptr->children[word[i] - 'a'] == NULL) {
ptr = new node;
}
if (ptr->children[word[i] - 'a'] == NULL) {
ptr = new node;
}
}
}
}
Ответы (1 шт):
Автор решения: DmitryK
→ Ссылка
Вы создаете объект структуры, в котором есть массив из 27 указателей. Эти указатели не инициализируются, т.е. после создания в указателях находится какие-то случайные числа.
В цикле, указателю ptr присваивается случайное число, и потом по нему идет обращение к памяти, что сразу естественно вызовет ошибку.