#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 TreeView控件使用详解(有趣的示例)

    第一小时:学习直接用代码将数据填充到树控件中. 为什么要先学习直接用代码将数据填充到树控件中?因为这种方法是最简单的,代码也最容易理解,学习树控件,先将这个学会,已经掌握了一半,所以先不要急着想怎么将 ...

  2. JS深度比较两个对象是否相等

    /** * 深度比较两个对象是否相等 * @type {{compare: compareObj.compare, isObject: (function(*=): boolean), isArray ...

  3. Python核心技术与实战——十一|程序的模块化

    我们现在已经总结了Python的基本招式和套路,现在可以写一些不那么简单的系统性工程或代码量较大的应用程序.这时候,一个简单的.py文件就会显得过于臃肿,无法承担一个重量级软件开发的重任.这就需要这一 ...

  4. Tengine + Lua + GraphicsMagick 实现图片自动裁剪/缩放

    http://my.oschina.net/eduosi/blog/169606

  5. CSS3——制作人物走路的小动画

    一个很简单的小动画,但是还挺有意思的,就是找这种图片很麻烦,我这里把我找的一张图片贴上来,这张图片是我在网上找的,又改了背景色和大小. <!DOCTYPE html> <html l ...

  6. 【leetcode】1146. Snapshot Array

    题目如下: Implement a SnapshotArray that supports the following interface: SnapshotArray(int length) ini ...

  7. 安卓手机通过有线连接PC上网

    因手机wifi坏了,速度上限为2.5m/s.无法发挥出100m带宽的威力. 这里探索各大神的指导,记录下其中一种方式. :链接       主题:使用openvpn和手机的USB共享网络 通过mico ...

  8. python+selenium实现发送一封带附件的邮件

    163邮件登录首页 登录成功断言是否有退出按钮 点击退出退出登录 from selenium import webdriver import unittest import time class Vi ...

  9. css-外面元素的高度,由里面的元素进行撑开(由内部的高度决定)

    1.删除你的高度的固定值 2.将父元素的====>display:inline-block; 或者设置浮动====>float:left;

  10. mybatis时间范围查询

    <if test="excStartTime!=null and excStartTime!=''"> <![CDATA[ and DATE_FORMAT(dl. ...