Форум программистов, компьютерный форум 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
07.04.2012, 23:48     Не освобождается память при выбросе исключений
это у меня находится в классе Add. Туда я добавляю элементы, перед этим проверяю, нет ли такого уже:

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

C++
1
2
3
4
5
6
7
8
9
10
const CCar& CDatabase:: FindCar (const string& RZ ) const
{
    for(int i=0;i<m_CarsNr;i++)
     if(*(m_Cars[i]) == RZ) // у нас указатель на указатель
     {
         m_Cars[i]->weSearchSomething=true;
         return *m_Cars[i];
     }
    throw InvalidCarException(RZ);
}
исключение должно быть в виде класса:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class InvalidDriverException
 {
   public:
      InvalidDriverException ( const string& name, const string& surname )
      :m_Name (name), m_Surname (surname) {}
 
    friend ostream& operator << ( ostream& os, const InvalidDriverException& e)
    {
         return os << e . m_Name << ' ' << e . m_Surname;
    }
 
   private:
    string m_Name;
    string m_Surname;
 };


Когда выбрасываю исключения не освобождается память. Как это исправить ?


Деструктор такого вида
C++
1
2
3
4
5
6
    ~CDriver()
    {
        for(int i=0;i<m_LogNr;i++)
         delete &m_Log[i];
        delete [] m_Log;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru