2016-12-10 5 views
0

Я разрабатываю класс Node, в котором одно из свойств представляет собой массив из 27 других узлов. Тем не менее, я всегда получаю исключение NullReference, когда пытаюсь использовать этот массив. Я не знаю, что я делаю неправильно, так как я пытаюсь объявить каждый узел из массива. Я объявляю массив в свойствах, как следует:Node Array всегда дает мне NullReferenceException

NodoTrie* hijos[27]; 

И это, как я пытаюсь использовать их:

void NodoTrie::Insertar(string word) { 
char a = word.at(0); 
newArray(); 
NodoTrie* rec; 
int x = (int)a; 
if (x == 165) 
    x =79; 
else if (x >= 79) 
    x++; 
x -= 65; 

if (hijos[x] == NULL) 
    hijos[x] = new NodoTrie; 
rec = hijos[x]; 
cout << "Se inserto la" << a << endl; 
if (word.length() == 1) 
    rec->endWord = true; 
else 
    rec->Insertar(word.erase(0, 1)); 

}

void NodoTrie::newArray() { 
for (int i = 0; i < 27; i++) 
    hijos[i] == new NodoTrie; 

}

Я знаю, реализация не самая симпатичная или идеальная, но я бы очень хотел знать, что мне нужно сделать, чтобы массив существовал, и Я больше не получаю эту ошибку.

+0

* но мне бы очень хотелось знать, что мне нужно сделать, чтобы массив существовал, * - используйте 'std :: vector ' и оставьте этот указательный материал позади. – PaulMcKenzie

ответ

0

Что вы делаете в newArray()? Это сравнение, вы используете «==» вместо «=». Так что это странное сравнение, а также функция ничего не делает.