void insert_KD_tree(noKD **tree, Queue *queue, int counter) {
if ((*tree)!=NULL) {
*tree = new_KD_node(queue->first->pointer,NULL,NULL);
}
else if (((*tree)->pointer[counter]) > (queue->first->pointer[counter])) {
counter++;
insert_KD_tree(&(*tree)->left,queue);
}
else {
counter++
insert_KD_tree(&(*tree)->right,queue,counter);
}
pop(queue);
}
Хорошо, так что это в основном функция вставки двоичного дерева, но для вставки массивов в узлы. Массивы хранятся в очереди, но у меня проблема с указателем на указатель. Когда я пытаюсь получить доступ к массиву с помощью gdb, он дает сообщение, что он не может получить доступ к ячейке памяти 0x10
, но если я попытаюсь получить к ней доступ к другой функции, это покажет мне, что местоположение просто отлично, и я могу получить доступ к массиву ,Функция ввода вставки Kdtree
Я заметил, что проблема заключается в указателе на указатель, и если я накладываю только одну астерическую при вызове insert_KD_function
, моя программа может без проблем обращаться к указателю tree->. Таким образом, проблема связана с указателем на указатель, он каким-то образом теряет ссылку на указатель.
Может ли кто-нибудь мне помочь?
Когда вы создаете новый узел дерева, указатели 'left' и' right' инициализируются символом 'NULL'? –