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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Создание календаря http://www.cyberforum.ru/cpp-beginners/thread409762.html
Печать календаря на заданный месяц заданного года с отметкой(звездочкой) тех дат, которые зафиксированы в файле-справочнике; под календарем необходимо распечатать подробную информацию по этим датам. Дана структура struct date { char fio; int god; int den; int mes; }
C++ Помогите пожалуйста решить??? Разработать алгоритм обработки двумерного массива размера n*m. Числа m и n, а также элементы массива взять из файла. Необходимо каждый элемент массива увеличить на сумму элементов его строки. результат записать в другой файл. пожалуйста помогите очень нужно!! http://www.cyberforum.ru/cpp-beginners/thread409761.html
Число Армстронга. C++
Составить функцию, которая определяет, является ли полученное ею целое число числом Армстронга. Число Армстронга - это число, содержащее K цифр, и равное сумме своих цифр, каждая из которых возведена в степень K. Например: 153=13 +53 +33 . В вызывающей функции main() ввести два целых числа n и N, n меньше N. На экран вывести все целые числа из интервала от n до N, которые являются числами...
правило Константы слева C++
Еще давно научили этому, чтобы писать в условиях сначала константу, а потом переменную которая проверяется. А сейчас рефакторил проект и возникла вопрос насколько широко это распространено? Помогает ли это, кроме случаев ероров на const = variable ?
C++ Есть на паскале, а как сделать на с++? http://www.cyberforum.ru/cpp-beginners/thread409734.html
Описать процедуру Chessboard(M, N, A), формирующую по целым положительным числам M и N матрицу A размера M x N, которая содержит числа 0 и 1, расположенные в «шахматном» порядке, причем A1.1 = 0. Двумерный целочисленный массив A является выходным параметром. С помощью этой процедуры по данным целым числам M иN сформировать матрицу A размера M x N.
C++ написать программу на С++ плюс,помимо указанных операций реализовать дополнительные методы. Очень надеюсь на вашу помощь..Очень важна данная программа.. Задание: Решением задачи является класс с закрытыми (private) полями, где операции реализуются как методы класса. Помимо указанных в задании операций, обязательно должны быть реализованы следующие методы: - конструктор инициализации с аргументами по умолчанию; - метод инициализации set_val; - метод заполнения полей объекта с... подробнее

Показать сообщение отдельно
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
19.12.2011, 15:08  [ТС]     Утечка памяти и delete
Цитата Сообщение от OrmaJever Посмотреть сообщение
Может есть какие то хитрости?
А хитрость то есть. Разве вы не знали что можно перегружать операторы new и delete ? Вчера в поисках метода борьбы с утечками нашёл просто божественую весч.
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
#include <windows.h>
 
#ifdef _DEBUG
#include <iostream.h>
 
inline void * __cdecl operator new[](unsigned int size, const char *file, int line)
{
    void *ptr = (void *)malloc(size);
    cout << "Memory size of " << size << " bytes allocated to array p(" << ptr << ") in " << file << ":" << line << endl;
    return ptr;
};
 
inline void * __cdecl operator new(unsigned int size, const char *file, int line)
{
    void *ptr = (void *)malloc(size);
    cout << "Memory size of " << size << " bytes allocated p(" << ptr << ") in " << file << ":" << line << endl;
    return ptr;
};
 
inline void __cdecl operator delete(void *p)
{
    cout << "Memory is deleted p(" << p << ")" << endl;
    free(p);
};
inline void __cdecl operator delete[](void *p)
{
    cout << "Memory is deleted from array p(" << p << ")" << endl;
    free(p);
 
};
#endif
 
#ifdef _DEBUG
    #define DEBUG_NEW new(__FILE__, __LINE__)
#else
    #define DEBUG_NEW new
#endif
 
#define new DEBUG_NEW
 
#endif
Видно в какой строке выделилась память и адрес указателя, затем какие указатели удалились. Это гениально ...
 
Текущее время: 19:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru