The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Проект GCC разрешил приём изменений без передачи Фонду СПО прав на код"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Проект GCC разрешил приём изменений без передачи Фонду СПО п..." +/
Сообщение от n00by (ok), 13-Июн-21, 11:08 
> Какая-то странная функция. Разве при создании новой ноды в дереве она не
> должна запихать новый элемент в ссылку предыдущей ноды?

В таком случае потребуется 3 функции (для left, right и next) у которых внутри всё равно окажется

rt->n[idx].next = rtrie_new_node(rt, chr);

или (это Си, а не плюсы) какая-нибудь

rtrie_link_new_node(rt, &rt->n[idx].next ,chr);

> Или ок, пускай
> она этого не будет делать, разве она изменит rt таким образом,
> что выражение слева от '=' поменяет смысл? В чём здесь говнокод
> то?

rt, естественно, изменить не может. Обратите внимание на ->n[idx].

Т.е. узлы дерева лежат в общем массиве и связаны индексами, а не указателями. Соответственно при добавлении элемента возможна переаллокация всего массива (копирование содержимого ОЗУ не происходит, добавляются новые страницы; но адрес начала может измениться).

Ну а вообще, изменит ли rt->n -- из сигнатуры не понятно, это и значит, что поведение не определено.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Проект GCC разрешил приём изменений без передачи Фонду СПО прав на код, opennews, 03-Июн-21, 12:43  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру