• code project 上的内存管理的示例代码


    /********************************************************************
        created:    2014/03/17 18:53
        filename:    main.cpp
        author:        Justme0 (http://blog.csdn.net/justme0)
    
        purpose:    code project 内存管理
    *********************************************************************/
    #define _CRT_SECURE_NO_WARNINGS
    #include <iostream>
    #include <new>
    using namespace std;
    
    //    Overload the new operator
    void *operator new ( size_t size , bool isAllocFailure )
    {
        if ( isAllocFailure )
            return NULL;
        else
        {
            try
            {
                void *Memory    =    ::operator new ( size );
                return Memory;
            }
            catch ( std::bad_alloc )
            {
                return NULL;
            }
        }
        return NULL;
    }
    
    //    Overload placement delete operator so that exceptions from
    //    constructors can be handled
    void operator delete ( void * Memory , bool isAllocFailure )
    {
        ::delete Memory;
    }
    
    void    SimpleFunction ( int MemCounter , bool AllFail )
    {
    
        int        LocalCounter = 0;
        char    *Mem1    =    new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char [ 32 ];
        if ( Mem1 != NULL )
            strcpy ( Mem1 , "First Memory" );
    
        char    *Mem2    =    new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char [ 32 ];
        if ( Mem2 != NULL )
            strcpy ( Mem2 , "Second Memory" );
    
        int        NumTimesLoop    =    10;
        int        LoopCounter        =    0;
    
        //    Create a Variable that will be allocate Inner Memory
        char    **InnerMemory    =    new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char * [ NumTimesLoop ];
    
        //    Loop through and allocate the memory required    
        for ( LoopCounter = 0; LoopCounter < NumTimesLoop ; LoopCounter ++ )
        {
            InnerMemory [ LoopCounter ] = new ( ( MemCounter == LocalCounter ++ ) || AllFail ) char [ 32 ];
        }
    
    
    }
    
    
    int main()
    {
        for ( int counter = 0; counter < 12; counter ++ )
            SimpleFunction ( counter , false );
        SimpleFunction ( -1 , true );
    
        return 0;
    }
  • 相关阅读:
    初识Node
    从服务器获取信息的方式
    引用对象的指针传递
    使用定时器来控制一次执行的任务数量
    JS字符串拼接的方法及性能比较
    提升JS比较效率的方式
    DOM访问优化
    JS数据存取效率的优化
    JS脚本加载顺序及优化
    python 基本用法
  • 原文地址:https://www.cnblogs.com/jjtx/p/3605969.html
Copyright © 2020-2023  润新知