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

Дерево. Утечка памяти, как обнаружить? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Прочитать информацию из файла и рассортировать как структуру, где хранятся данные про каждую книгу http://www.cyberforum.ru/cpp-beginners/thread1101604.html
в файле записываю информация про книги: автор, название, год издания, кол-во страниц. нужно с читать её из файла и рассортировать как структуру где хранятся данные про каждую книгу.
C++ QuickSort по ключу массивов структур есть структура, где вводятся фио, город проживания и балл. нужно сортировать это методом quicksort по баллу. написал, но выдает ошибки. подскажите как исправить. спасибо #include <iostream.h> #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> http://www.cyberforum.ru/cpp-beginners/thread1101584.html
Исправить ошибку C++
Помогите исправить ошибку #include <iostream> #include <locale> #include <cmath> #define M_PI 3.1415926535897932384626433832795 using namespace std; class Elips {
C++ Процесс А инициализирует массив случайными значениями и записывает их в файл, а затем запускает процесс Б
В универ нужно сделать лабу по выше указанной теме. Мне не нужно чтобы за меня делали - нужен просто совет. Для начала: Задание: Консольная программа. 1. Процессы. Процесс А инициализирует массив случайными значениями и записывает их в файл, а затем запускает процесс Б в командной строке передается имя файла с данными. После этого ожидает завершения процесса Б и выводит на экран результат...
C++ Использование Typedef http://www.cyberforum.ru/cpp-beginners/thread1101563.html
Читал книгу по паттернам и натолкнулся на такой пример в паттерне command: template<class Receiver> class SimpleCommand : public Command { public: typedef void (Receiver::* Action)(); SimpleCommand(Receiver* r, Action a) : _receiver(r), _action(a) {} virtual void Execute(); private:
C++ Ветвление в С++ есть код if(board) { return false; } где board двумерный массив типа int. Я не совсем понимаю что должно произойти, чтобы благодаря этой записи программа вывела false. Это значит что элемент должен не равняться нулю? Заранее спасибо подробнее

Показать сообщение отдельно
Battle_Hamster
 Аватар для Battle_Hamster
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 90
21.02.2014, 00:51  [ТС]     Дерево. Утечка памяти, как обнаружить?
Собственно первый косяк найден.
Функция добавления узла в дерево должна выглядеть так (удалена только одна строчка):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
 void Drzewo::dodaj_wezel(int liczba_synow, string imie)
{
    if (korzen==NULL)  //
    {
 
 
        Pracownik * element = new Pracownik;
        element->liczba_synow = liczba_synow; //przepisujemy dane do wezla
        element->imie=imie;
        element->tab_dzieci = new Pracownik*[element->liczba_synow];
        for (int i=0; i<liczba_synow;i++)
        {
            element->tab_dzieci[i]=NULL;
            cout<<"tworze tblice dzieci"<<endl;
        }
 
        element->ojciec=NULL;
        element->terazn_liczba_synow=0;
        kolejka.push(element);
        this->korzen=element;
        this->curr=korzen;
 
    }// if
    else if (curr->terazn_liczba_synow<curr->liczba_synow)
    {
        ;
        Pracownik * element  = new Pracownik;
        element->liczba_synow=liczba_synow;
        element->imie=imie;
        element->tab_dzieci = new Pracownik *[element->liczba_synow];
        for (int i=0; i<element->liczba_synow;i++)
        {
            element->tab_dzieci[i]=NULL;
        }
 
        element->ojciec=this->curr;
      //  kolejka.push(element);
        element->ojciec->tab_dzieci[element->ojciec->terazn_liczba_synow]= element;
        element->ojciec->terazn_liczba_synow++;
 
 
    }
    else
    {
       // kolejka.pop();
 
        Pracownik * element  = new Pracownik;
        element->liczba_synow=liczba_synow;
        element->imie=imie;
        element->tab_dzieci = new Pracownik*[element->liczba_synow];
 
        for (int i=0; i<element->liczba_synow;i++)
        {
            element->tab_dzieci[i]=NULL;
        }
        element->ojciec=curr;
       // kolejka.push(element);
        curr->tab_dzieci[curr->terazn_liczba_synow]= element;
        curr->terazn_liczba_synow++;
        curr=element;
    }
 
 
 
}

Но дебаггер всё равно выплёвывает утечку памяти
 
Текущее время: 06:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru