1. /********************************************************************
  2. created: 2014/03/17 18:53
  3. filename: main.cpp
  4. author: Justme0 (http://blog.csdn.net/justme0)
  5.  
  6. purpose: code project 内存管理
  7. *********************************************************************/
  8. #define _CRT_SECURE_NO_WARNINGS
  9. #include <iostream>
  10. #include <new>
  11. using namespace std;
  12.  
  13. // Overload the new operator
  14. void *operator new ( size_t size , bool isAllocFailure )
  15. {
  16. if ( isAllocFailure )
  17. return NULL;
  18. else
  19. {
  20. try
  21. {
  22. void *Memory = ::operator new ( size );
  23. return Memory;
  24. }
  25. catch ( std::bad_alloc )
  26. {
  27. return NULL;
  28. }
  29. }
  30. return NULL;
  31. }
  32.  
  33. // Overload placement delete operator so that exceptions from
  34. // constructors can be handled
  35. void operator delete ( void * Memory , bool isAllocFailure )
  36. {
  37. ::delete Memory;
  38. }
  39.  
  40. void SimpleFunction ( int MemCounter , bool AllFail )
  41. {
  42.  
  43. int LocalCounter = ;
  44. char *Mem1 = new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char [ ];
  45. if ( Mem1 != NULL )
  46. strcpy ( Mem1 , "First Memory" );
  47.  
  48. char *Mem2 = new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char [ ];
  49. if ( Mem2 != NULL )
  50. strcpy ( Mem2 , "Second Memory" );
  51.  
  52. int NumTimesLoop = ;
  53. int LoopCounter = ;
  54.  
  55. // Create a Variable that will be allocate Inner Memory
  56. char **InnerMemory = new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char * [ NumTimesLoop ];
  57.  
  58. // Loop through and allocate the memory required
  59. for ( LoopCounter = ; LoopCounter < NumTimesLoop ; LoopCounter ++ )
  60. {
  61. InnerMemory [ LoopCounter ] = new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char [ ];
  62. }
  63.  
  64. }
  65.  
  66. int main()
  67. {
  68. for ( int counter = ; counter < ; counter ++ )
  69. SimpleFunction ( counter , false );
  70. SimpleFunction ( - , true );
  71.  
  72. return ;
  73. }

code project 上的内存管理的示例代码的更多相关文章

  1. vue mpvue 上拉加载更多示例代码

    vue 上拉加载更多示例代码 可以比较简单的改为 mpvue , 去除滚动判断,直接放在 onReachBottom 周期即可. html <div id="app"> ...

  2. TaskTracker节点上的内存管理器

    Hadoop平台的最大优势就是充分地利用了廉价的PC机,这也就使得集群中的工作节点存在一个重要的问题——节点所在的PC机内存资源有限(这里所说的工作节点指的是TaskTracker节点),执行任务时常 ...

  3. linux内存管理--slab及其代码解析

    Linux内核使用了源自于 Solaris 的一种方法,但是这种方法在嵌入式系统中已经使用了很长时间了,它是将内存作为对象按照大小进行分配,被称为slab高速缓存. 内存管理的目标是提供一种方法,为实 ...

  4. SkylineGlobe 6.6 三维地图上实现自定义右键菜单示例代码

    1.OnRButtonDown.htm <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  5. 《深入理解Android虚拟机内存管理》示例程序编译阶段生成的各种语法树完整版

    1.tokens "int"                   "int" <SPACES>                " &quo ...

  6. JNI中的内存管理(转)

    源:JNI中的内存管理 JNI 编程简介 JNI,Java Native Interface,是 native code 的编程接口.JNI 使 Java 代码程序可以与 native code 交互 ...

  7. 一文带你彻底了解大数据处理引擎Flink内存管理

    摘要: Flink是jvm之上的大数据处理引擎. Flink是jvm之上的大数据处理引擎,jvm存在java对象存储密度低.full gc时消耗性能,gc存在stw的问题,同时omm时会影响稳定性.同 ...

  8. JavaScript的内存管理

    JavaScript的内存管理 1.什么是内存管理? 在了解JavaScript的内存管理之前,可以先大致熟悉一下什么是内存管理,不管什么样的编程语言,在其代码执行的过程中都是需要为其分配内存的. 不 ...

  9. 【C# .Net GC】自动内存管理

    原文:https://docs.microsoft.com/zh-cn/dotnet/standard/automatic-memory-management 自动内存管理是公共语言运行时在托管执行过 ...

随机推荐

  1. sax/dom/jdom/dom4j的区别

    sax/dom/jdom/dom4j的区别[转] 博客分类: xml   网上能够查到很多的4种解析方式的区别,我再做一下摘录和总结,顺带给自己做个备份. SAX sax分析器在对xml文档进行分析时 ...

  2. Struts2从一个action转到另一个action的两种方法

    在Struts2中,Action处理完用户请求后,将会返回一个字符串对象,这个字符串对象就是一个逻辑视图名.Struts 2通过配置逻辑视图名和物理视图之间的映射关系,一旦系统收到Action返回的某 ...

  3. 11,SFDC 管理员篇 - 报表和数据的可视化

    1,Report Builder 1,每一个report type 都有一个 primay object 和多个相关的object 2,Primary object with related obje ...

  4. css内容样式属性

    设置元素的最大高度.最小高度.最大宽度.最小宽度,用max-height.min-height.max-width.min-width. visibility:设置元素是否可见.visible和hid ...

  5. <读书笔记>软件调试之道 :从大局看调试-发现代码存在问题

    声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...

  6. app 支付宝 支付 alipaySdk

    function pay(P1: JString; P2: Boolean): JString; cdecl;    function fetchOrderInfoFromH5PayUrl(P1: J ...

  7. RedHat6.5更新软件源

    今天在Red Hat上安装软件时,发现需要依赖软件,然而在用sudo yum指令时,出现了下面的错误: This system is not registered to Red Hat Subscri ...

  8. 柯朗数(Courant number)研究

    在数值计算过程中,对于计算结果的准确性和效率有很高的要求,但是这两者之间往往互相矛盾:而使用柯朗数可用于平衡两者. 1.柯朗数的定义: C = sqrt(gh)*t/s 其中,t是时间步长,s是网格在 ...

  9. 灵活运用 SQL SERVER FOR XML PATH

    FOR XML PATH 有的人可能知道有的人可能不知道,其实它就是将查询结果集以XML形式展现,有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作.那么以一个实例为主 ...

  10. CAN总线(一)

    原文出处:http://www.cnblogs.com/jacklu/p/4729638.html 嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对 ...