MEM_0N() (см. далее). Информац

Автор admin Пятница, 8 мая 2009 11:32

MEM_0N() (см. далее). Информация обо всех операциях выделения и освобождения памяти будет направляться в стандартный выходной поток (через stdout). При использовании этой системы для всех вызовов new сохраняется имя файла и номер строки, содержащей вызов. Для этого мы задействуем синтаксис размещения оператора new1. Хотя обычно синтаксис размещения применяется в тех случаях, когда объекты должны находиться по определенному адресу памяти, он также позволяет создать функцию operator new() с любым количеством аргументов. В следующем примере дополнительные аргументы используются для сохранения результатов макросов_FILE_и_LINE_при каждом вызове new: //: С02:MemCheck.h #ifndef МЕМСНЕСК_Н #defme МЕМСНЕСК_Н #include // для size_t // Перехват оператора new (в версиях для скаляров и массивов) void* operator new(std::size_t, const char*, long); void* operator new[](std::size_t. const char*, long): , #define new new (_FILE_. _LINE_) extern bool traceFlag: #define TRACE_0N() traceFlag – true #define TRACE_0FF() traceFlag = false extern bool activeFlag: #define MEM_0N() activeFlag – true #define MEM_0FF(


Комментарии закрыты.