Форум программистов, компьютерный форум CyberForum.ru

Не освобождается память при выбросе исключений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Итераторы С++ http://www.cyberforum.ru/cpp-beginners/thread542139.html
Помогите, пожалуйста, надо написать две программы Задача 1 Напишите программу, использующую итераторы при чтении последовательности строк со стандартного устройства ввода в вектор. Отобразите элементы вектора. Задача 2 Перепишете предыдущую программу так, чтобы вместо вектора использовался список.
C++ chrono из нового стандарта Кто-нибудь chrono из C++11 уже реализовал? #include <iostream> #include <chrono> #include <thread> int main () { std::chrono::milliseconds t (2000); std::this_thread::sleep_for (t); http://www.cyberforum.ru/cpp-beginners/thread542138.html
C++ Создание словаря ключ - значение на C
Здравствуйте! Нужно создать структуру словарь типа ключ - значение на языке C. С возможностью добавления, удаления, очистки и удаления по ключу. Подскажите пожалуйста в каком виде вообще представить этот словарь. Как структуру данных или ассоциативный массив.. Спасибо.
Динамическая Очередь (FIFO). C++
Здравствуйте! Ребят, кому невмоготу , помогите реализовать структуру согласно этим требованиям: 1. Динамическую структуру требуется определить в виде шаблонного класса, реализующего заданное поведение. 2. Задать необходимые методы в классе, задающем поведение динамической структуры: a. очистку; b. добавление элемента в соответствии с поведением: c. вывод содержимого. Заранее...
C++ поиск в бинарном дереве http://www.cyberforum.ru/cpp-beginners/thread542121.html
Создать бинарное дерево. Занести числа: по возростанию, убыванию и случайные. После этого подсчитать количество операций необходимые чтобы найти каждое из чисел набора (3 наборов) в дереве, или удостовериться, что такого числа нет. typedef struct tag_tree{ int info; struct tag_tree *left, *right; }TREE; int sr=0, pr=0; // счетчик для сравнения и присвоения
C++ рекурсия, итеративный метод помогите пожалуйста написать программу для итеративного способа вычисления. нужно вычислить элементы последовательности a(n) = a(n div 2) + a(n div 3), n>1 a(0)=1 я написал программу для рекурсии, а как через цикл задать не могу сообразить... #include "stdafx.h" #include <conio.h> подробнее

Показать сообщение отдельно
Allpodo
0 / 0 / 0
Регистрация: 14.08.2011
Сообщений: 54
08.04.2012, 00:08  [ТС]     Не освобождается память при выбросе исключений
есть 5 классов.
InvalidCarException
InvalidDriverException
CCar;
CDriver;
CDatabase

CCar - Содержит информацию о машине, номерной знак и структуру, где указано время, когда машину брали на прокат и указатель на водителя, который брал машину.
CDriver - Имя фамилия и структура, где указано время, когда человек брал машину на прокат и есть указатель внутри структуры на машину, которая бралась в это время.

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

C++
1
2
3
4
5
6
7
8
9
10
    try
    {
        tempDriver= &(FindDriver(name, surname));
        const_cast<CDriver*>(tempDriver)->weSearchSomething=false;
    }
 
    catch(InvalidDriverException& drive)
    {
        //Здесь освобождаем память. Можно ? Если да, то круто. Но как ?)))
    }

C++
1
2
3
4
5
6
7
8
9
const CCar& CDatabase:: FindCar (const string& RZ ) const
{
   for(int i=0;i<m_CarsNr;i++)
     if(*(m_Cars[i]) == RZ) //
     {
//возвращаю автомобиль.
     }
    throw InvalidCarException(RZ);
}


С базами работаю так:
C++
1
2
3
4
5
6
7
8
a = new CDatabase;
    b = new CDatabase;
    st = a -> Add ( "2012-03-01", "John", "Nash", "ABC-12-34" ); // st = true
*b = *a;
    c = new CDatabase ( *a );
    st = b -> Add ( "2012-03-03", "Homer", "Simpson", "ABC-12-34" ); // st = true
    st = c -> Add ( "2012-03-03", "Homer", "Simpson", "DEF-56-67" ); // st = true
   cout << a -> FindCar ( "XYZ-99-88" );
 
Текущее время: 22:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru