#ifdef _DEBUG

 #include <stdio.h>
#include <stdlib.h>
#include <string.h> #define _BUF_SIZE 128 static const char* g_FileName = "HeapLog.txt";
static const char* g_AllocateFail = "分配失败 --- 当前情况(分配:%d, 释放:%d)\x0a";
static const char* g_AllocateOK = "分配成功(地址:%p, 大小:%d) --- 当前情况(分配:%d, 释放:%d)\x0a";
static const char* g_FreeOK = "释放成功(地址:%p) --- 当前情况(分配:%d, 释放:%d)\x0a";
static int g_AllocateNum = ;
static int g_FreeNum = ;
static char g_Buf[_BUF_SIZE]; void* operator new(size_t s)
{
void* p = malloc(s); FILE* pF;
fopen_s(&pF, g_FileName, "a"); if (!p)
sprintf_s(g_Buf, _BUF_SIZE, g_AllocateFail, g_AllocateNum, g_FreeNum);
else
{
g_AllocateNum++;
sprintf_s(g_Buf, _BUF_SIZE, g_AllocateOK, p, s, g_AllocateNum, g_FreeNum);
} fwrite(g_Buf, sizeof(char), strlen(g_Buf), pF);
fflush(pF);
fclose(pF);
return p;
} void operator delete(void* p)
{
free(p);
g_FreeNum++; FILE* pF;
fopen_s(&pF, g_FileName, "a"); sprintf_s(g_Buf, _BUF_SIZE, g_FreeOK, p, g_AllocateNum, g_FreeNum);
fwrite(g_Buf, sizeof(char), strlen(g_Buf), pF);
fflush(pF);
fclose(pF);
} void* operator new[](size_t s)
{
return operator new(s);
} void operator delete[](void* p)
{
operator delete(p);
} #endif

heaplog的更多相关文章

  1. 手把手教你定位常见Java性能问题

    概述 性能优化一向是后端服务优化的重点,但是线上性能故障问题不是经常出现,或者受限于业务产品,根本就没办法出现性能问题,包括笔者自己遇到的性能问题也不多,所以为了提前储备知识,当出现问题的时候不会手忙 ...

随机推荐

  1. vb中typename函数

    适用于获得一个变量的类型名称的, 比如 A 是一个字符串变量,那么 TypeName(A)=String

  2. C++ STL(标准模板库)

    一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的,在被引入C++之前该技术就已经存在了很长的一段时间. STL的代码从广义上讲分为三类:alg ...

  3. 最长公共子序列板/滚动 N^2

    #include <bits/stdc++.h> using namespace std; int main() { ][],t; ],b[]; bool now,pre; scanf(& ...

  4. 下载放在resource下面的excel文件

    1.将excel文件放项目resources目录下 2.打包的时候排除指定后缀文件,否则打包时会出现文件损坏的情况 <configuration> <encoding>UTF- ...

  5. 【SaltStack官方版】—— states教程, part 2 - 更复杂的states和必要的事物

    states tutorial, part 2 - more complex states, requisites 本教程建立在第1部分涵盖的主题上.建议您从此处开始. 在Salt States教程的 ...

  6. ASP.net 能写一个上传整个文件夹的东东

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...

  7. 【bzoj3463】[COCI2012] Inspector

    *题目描述: 在一个小国家中,一个新的小镇终于建成了!如往常一样,Mirko获得了“首席税务巡查员”的职位.他的任务是保证正确地计算各公司的收入情况.一共有N家办公室坐落在主干道上,从左到右被编号为1 ...

  8. CG-CTF | MD5

    渣渣今天写了一题misc,第一次学习md5的python写法,赶紧记录一波 背景知识: import hashlib md51=hashlib.md5() md52=hashlib.md5() # [ ...

  9. HDU6715 算术(莫比乌斯反演)

    HDU6715 算术 莫比乌斯反演的变形. 对 \(\mu(lcm(i,j))\) 变换,易得 \(\mu(lcm(i,j)) = \mu(i)\cdot\mu(j)\cdot \mu(gcd(i,j ...

  10. pepflashplayer32_25_0_0_127.dll: 0x59952C6D is not a valid instance ID.

    pepflashplayer32_25_0_0_127.dll: 0x59952C6D is not a valid instance ID. . 点进去是提示doctype错误 暂时没有解决---- ...