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

Утечка памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить сумму ряда http://www.cyberforum.ru/cpp-beginners/thread958125.html
Вычислить сумму ряда(приведен на изображении) с точностью ε. Сделать графическую интерпретацию результата.\ Как я понял вводятся 'x' и 'ε'. Но непонятно как считается эта сумма(какую формулу использовать) и как написать эту сумму ряда на С++.
C++ Создать свой класс, содержащий три закрытые переменные Программа на С++ СРОЧНО! Создать свой класс, содержащий три закрытые переменные типа int, char, double, одну открытую переменную и две функции, одна из которых имеет один параметр, вторая - три параметра. Буду благодарен за помощь в решении! http://www.cyberforum.ru/cpp-beginners/thread958121.html
C++ Программа для сортировки
Здраствуйте, необходимо написать программу в которуй будет 12 случайных элементов, затем нужно будет сложить рядом стоящие элементы, и отсортировать полученную сумму двух соседних, по возрастанию, пузырьковый метод, я пока написал только сортировку просто рядом стоящих чисел, но как сделать что бы складывались два соседних числа и сравнивать по их сумме незнаю, дополнительный массив не заводить....
Множество целых чисел C++
Hi all. Пытаюсь описать класс, прдеставляющий собой множестов целых чисел. Перегрузил оператор "+" для объединения множеств. При попытке им воспользоваться получается бредятина - в получившемся множестве оказываются какие-то левые числа. //sets.h class Set { private: int *n; unsigned short count=0; public: Set(); Set(int* , int);
C++ зачем нужно Временное значение? http://www.cyberforum.ru/cpp-beginners/thread958099.html
void swapper(int &x,int &y) //Функция перемены мест. Если параметры будут без ссылок, то эффекта не будет { int temp; //Временное значение temp=x; //Запоминаем текущий элемент x во временное значение temp x=y; //В текущее значение x записываем следующее за ним y=temp; //Текущее значение было изменено, но оно запомнено в temp, берем его оттуда
C++ Клик мыши в координатах Всем Привет, необходимо программно кликнуть допустим по координате (X;Y). Как это реализовать. Зарание спасибо! подробнее

Показать сообщение отдельно
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
20.09.2013, 00:47     Утечка памяти
потому что клонирование - это создание копии объекта. динамическое создание. а удаления нет.
почитайте что такое RAII. в новом стандарте стандартные птры можно адаптировать под всякие подобные библиотеки:

пример из вашего кода:
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
 IplImage* dst = cvCreateImage( cvGetSize(image), IPL_DEPTH_8U, 1 );
 // тут куча всего прочего.
 // после этого нужно не забыть позвать релиз. иначе утечка.
 // а если будет исключение, то релиз не выполнится и снова будет утечка.
 cvReleaseImage(&dst);
 
 
//////////////////////////////////////////////
в новом стандарте нужно написать класс - освобождалку:
struct IplImageReleaser
{
  void operator () (IplImage* img) const
  {
    if (img != nullptr)
    {
      cvReleaseImage(&img);
    }
  }
};
 
потом делаем тайпдеф:
typedef std::unique_ptr<IplImage, IplImageReleaser> ImplImageUniquePtr;
// тоже можно сделать и для shared_ptr, если нужно будет копировать такой объект.
 
// после этого создаем:
ImplImageUniquePtr dst(cvCreateImage( cvGetSize(image), IPL_DEPTH_8U, 1 ));
//тут делаем что хотим. при выходе за пределы видимости, позовется
//деструктор ImplImageUniquePtr, который вызовет наш релизер.
//единсвенный минус - немного более многословно другие функции вызывать
 
  cvSmooth(dst.get(), dst.get(), CV_GAUSSIAN, 3, 3); // сглаживаем изображение
  cvThreshold(dst.get(),dst.get(), trs, 255, CV_THRESH_BINARY_INV); //Пороговое преобразование
  cvCanny(dst.get(), dst.get(), trs1, trs2, 3); //Выделяем границы
 
  // для других объектов тоже подобные релизеры можно написать.
 
Текущее время: 10:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru