Трудно сказать мою проблему в названии. Тем не менее,Распределение структуры с бинарным деревом
Я программирую программу, использующую базу данных структуры. В этой структуре у меня есть информация о базе данных и элементе самой базы данных. Каждый элемент является другой структурой. Пока я объявлял элементы whit просто массивом элементов с определенным размером. Но каждый элемент тяжелый (6 длинный двойной, char [64], некоторый int и вскоре намного больше), и я хочу, чтобы программа могла работать над множеством (возможно, infinte) элементов одновременно, поэтому необходимо использовать много оперативной памяти. Но только иногда программа заполняет массив, поэтому программа занимает много оперативной памяти и работает только с несколькими элементами. Поэтому я решил использовать двоичное дерево, поэтому, когда я хочу поместить другой элемент, я инициализирую новую структуру элементов, и когда я удалю его, программа деаллокод структуры, и я могу иметь элемент «infintie». Но две проблемы поразили меня:
1) Если я вызываю функцию, которая выделяет новую структуру и возвращает указатель на нее, структура не будет автоматически освобождена, потому что функция завершена 2) Элемент распределения программы и dealloc структуры без указания порядка, поэтому массив совершенен, потому что достаточно булевского флага «активный» или «неактивный» для каждой структуры, но в дереве, вещи сложнее, я должен удалить узел, а затем повторно подключить его детей на другой узел, у которого нет детей ...
Как вы думаете? Каждое предложение берется с благодарностью.
спасибо за отличное объяснение. Но если я вызываю функцию, которая выделяет переменную, когда функция возвращает, могу ли я получить к ней доступ? –
Да, если вы все сделаете правильно. См. Мой [другой ответ] (http://stackoverflow.com/questions/36817825/linked-list-head-not-being-updated-across-function-calls/36817919#36817919), который распространяется только на этот –