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 присваивается случайное число, и потом по нему идет обращение к памяти, что сразу естественно вызовет ошибку.

→ Ссылка