Вопрос № 63785: Здравствуйте!
У меня такой вопрос!
У меня есть класс (см. приложение). Функция bool NewKl (int id) добавляет в дерево новый элемент, вставляя его после id-го по индексу. Корень дерева заведомо существует (создаётся в конструкторе). Функция ра...
Вопрос № 63.785
Здравствуйте!
У меня такой вопрос!
У меня есть класс (см. приложение). Функция bool NewKl (int id) добавляет в дерево новый элемент, вставляя его после id-го по индексу. Корень дерева заведомо существует (создаётся в конструкторе). Функция работает правильно (в отладчике (f5)- всегда), но при запуске (ctrl+f5) в определённом сочетании команд вылезает ошибка. Отловить её я не могу, т.к. в пошаговом запуске ошибки нет. Но если вставить в код вывод, то ошибка исчезает. Помогите, пожалуйста!
И ещё вопрос: надо ли дополнительно освобождать память из-под переменной der->deti (и если надо, то как - простой delete не проходит), если я уже удалила все der->deti[i]?
Приложение:
Отправлен: 23.11.2006, 00:17
Вопрос задала: Verena (статус: 3-ий класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: LeoGann
Здравствуйте, Verena!
Не буду точно утверждать так как, код предаставлен не весь, но мне кажется (практически уверен) что ошибка здесь
struct Kletka {
int ind; //индекс
int zar;
int kp;
Kletka* rod;
Kletka** deti; <-- вот здесь ошибка;
};
вы не виделяете память под массив указателей на детей
попробуйте воспользоваться vector ом для хранения ссылок на детей
struct Kletka {
...
std::vetor<Kletka*> deti;
}
Возникнут вопросы пишите.
Ответ отправил: LeoGann (статус: 1-ый класс)
Ответ отправлен: 23.11.2006, 09:40