您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ CMemAlloc函数代码示例

51自学网 2021-06-01 20:03:13
  C++
这篇教程C++ CMemAlloc函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中CMemAlloc函数的典型用法代码示例。如果您正苦于以下问题:C++ CMemAlloc函数的具体用法?C++ CMemAlloc怎么用?C++ CMemAlloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了CMemAlloc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: dw_write

static void dw_write( dw_sectnum section, const void *block, dw_size_t len )/********************************************************************/{    unsigned            bufnum;    unsigned            endbufnum;    C_DW_SECTION        *dwsect;    char                **newbufptrs;    unsigned            bufsize;    char                *bufptr;    dwsect = &DWSections[section];    #ifdef __DD__    //int i;    printf( "/nDW_WRITE(%d:%d): offset: %d len: %d ",        section,        dwsect->length,        dwsect->offset,        len );    //for( i = 0 ; i < len; i++ ) {    //    printf( "%02x ", (int)((char *)block)[i] );    //}    #endif    bufnum = dwsect->offset / C_DWARF_BUFSIZE;    endbufnum = (dwsect->offset + len) / C_DWARF_BUFSIZE;    if( endbufnum >= dwsect->bufcount ) {        newbufptrs = (char**)CMemAlloc( (endbufnum + 1) * sizeof(char**) );        if( dwsect->bufptrs != NULL ) {            memcpy( newbufptrs,                    dwsect->bufptrs,                    dwsect->bufcount * sizeof(char**) );            CMemFree( dwsect->bufptrs );        }        dwsect->bufptrs = newbufptrs;        dwsect->bufcount = endbufnum + 1;    }    bufsize = C_DWARF_BUFSIZE - (dwsect->offset % C_DWARF_BUFSIZE);    dwsect->offset += len;    if( dwsect->offset > dwsect->length ) {        dwsect->length = dwsect->offset;    }    while( len != 0 ) {        bufptr = dwsect->bufptrs[bufnum];        if( bufptr == NULL ) {            bufptr = (char *)CMemAlloc( C_DWARF_BUFSIZE );            dwsect->bufptrs[bufnum] = bufptr;        }        bufptr += C_DWARF_BUFSIZE - bufsize;        if( len < bufsize )  bufsize = len;        memcpy( bufptr, block, bufsize );        block = (char *)block + bufsize;        len -= bufsize;        ++bufnum;                       // advance to next buffer        bufsize = C_DWARF_BUFSIZE;      // buffer is full size    }}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:55,


示例2: CreateAux

void CreateAux(                 // CREATE AUX ID    const char *id )            // - id{    CurrEntry = CMemAlloc( offsetof( AUX_ENTRY, name ) + strlen( id ) + 1 );    strcpy( CurrEntry->name, id );    CurrInfo = CMemAlloc( sizeof( AUX_INFO ) );    // AuxCopy assumes destination is valid    CurrInfo->parms = NULL;    CurrInfo->objname = NULL;    CurrInfo->code = NULL;}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:11,


示例3: CMemAlloc

void *AsmAlloc( size_t amount ){    void    *ptr;    ptr = CMemAlloc( amount );    return( ptr );}
开发者ID:ABratovic,项目名称:open-watcom-v2,代码行数:7,


示例4: PragManyRegSets

void PragManyRegSets(           // GET PRAGMA REGISTER SETS    void ){    hw_reg_set buff[ MAXIMUM_PARMSETS ];    int i;    hw_reg_set list;    hw_reg_set *sets;    list = PragRegList();    i = 0;    while( !HW_CEqual( list, HW_EMPTY ) && ( i != MAXIMUM_PARMSETS ) ) {        buff[ i++ ] = list;        list = PragRegList();    }    if( !HW_CEqual( list, HW_EMPTY ) ) {        CErr1( ERR_TOO_MANY_PARM_SETS );    }    HW_CAsgn( buff[i], HW_EMPTY );    i++;    i *= sizeof( hw_reg_set );    sets = ( hw_reg_set * ) CMemAlloc( i );    memcpy( sets, buff, i );    if( !IsAuxParmsBuiltIn( CurrInfo->parms ) ) {        CMemFree( CurrInfo->parms );    }    CurrInfo->parms = sets;}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:27,


示例5: ChunkSaveData

static void ChunkSaveData( STRCHUNK *pch, const char *data, size_t len ){    int   bytesleft;    int   requestbytes;    char *newdata;    bytesleft = pch->maxsize - (pch->cursize+len+1);    if( bytesleft <= 0 ) {        requestbytes = -bytesleft;        if( requestbytes < STRCHUNK_INCREMENT ) {            requestbytes = STRCHUNK_INCREMENT;        }        requestbytes += pch->maxsize;        newdata = CMemAlloc( requestbytes );        if( pch->data ) {            memcpy( newdata, pch->data, pch->cursize );            CMemFree( pch->data );        }        pch->data = newdata;        pch->maxsize = requestbytes;    }    memcpy( pch->data+pch->cursize, data, len );    pch->cursize += len;    pch->data[pch->cursize] = '/0';}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:25,


示例6: PCHInitNames

pch_status PCHInitNames( bool writing ){    int i;    idname *name;    idname **p;    if( ! writing ) {        return( PCHCB_OK );    }    nameTranslateTable = CMemAlloc( nameCount * sizeof( idname * ) );    p = nameTranslateTable;    for( i = 0; i < NAME_TABLE_HASH; ++i ) {        for( name = hashTable[ i ]; name != NULL; name = name->next ) {            *p = name;            ++p;        }    }    qsort( nameTranslateTable, nameCount, sizeof( idname * ), cmpName );#ifndef NDEBUG    {        int i;        for( i = 1; i < nameCount; ++i ) {            if( nameTranslateTable[i - 1] == nameTranslateTable[i] ) {                CFatal( "two identical names in translation table" );            }        }    }#endif    nameFlags.no_creates_allowed = TRUE;    return( PCHCB_OK );}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:31,


示例7: getPackArgs

local void getPackArgs( void )/****************************/{    struct pack_info    *pi;    /* check to make sure it is a numeric token */    if( PragIdRecog( "push" ) ) {                  /* 29-sep-94 */        pi = (struct pack_info *)CMemAlloc( sizeof( struct pack_info ) );        pi->next = PackInfo;        pi->pack_amount = PackAmount;        PackInfo = pi;        if( CurToken == T_COMMA ) {            PPCTL_ENABLE_MACROS();            NextToken();            PPCTL_DISABLE_MACROS();            if( ExpectingConstant() ) {                SetPackAmount();            }            NextToken();        }    } else if( PragIdRecog( "pop" ) ) {        pi = PackInfo;        if( pi != NULL ) {            PackAmount = pi->pack_amount;            PackInfo = pi->next;            CMemFree( pi );        }    } else {        CErr1( ERR_NOT_A_CONSTANT_EXPR );    }}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:31,


示例8: AddLibraryName

void AddLibraryName( char *name, char priority )/**********************************************/{    library_list    **new_owner;    library_list    **owner;    library_list    *lib;    int             len;    for( owner = &HeadLibs; (lib = *owner) != NULL; owner = &lib->next ) {        if( lib->libname[0] < priority ) {            break;        }        if( FNAMECMPSTR( lib->libname + 1, name ) == 0 ) {            return;        }    }    new_owner = owner;    for( ; (lib = *owner) != NULL; owner = &lib->next ) {        if( FNAMECMPSTR( lib->libname + 1, name ) == 0 ) {            *owner = lib->next;            break;        }    }    if( lib == NULL ) {        len = strlen( name );        lib = CMemAlloc( offsetof( library_list, libname ) + len + 2 );        memcpy( lib->libname + 1, name, len + 1 );    }    lib->libname[0] = priority;    lib->next = *new_owner;    *new_owner = lib;}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:32,


示例9: CMemAlloc

void *SafeRecurseCpp( func_sr rtn, void *arg )/********************************************//* This code assumes NO parameters on the stack! */{    #define SAVE_SIZE   512     /* this must be smaller than the stack */    void    *savearea;    void    *retval;    if( stackavail() < 0x2000 ) { /* stack getting low! */        savearea = CMemAlloc( SAVE_SIZE );        if( savearea != NULL ) {            memcpy( bp(), savearea, SAVE_SIZE );            memcpy( sp(), sp() + SAVE_SIZE, bp() - sp() );            setbp( bp() + SAVE_SIZE );            setsp( sp() + SAVE_SIZE );            retval = rtn( arg );            setsp( sp() - SAVE_SIZE );            memcpy( sp() + SAVE_SIZE, sp(), bp() - sp() - SAVE_SIZE );            setbp( bp() - SAVE_SIZE );            memcpy( savearea, bp(), SAVE_SIZE );            CMemFree( savearea );            return( retval );        }    }    return( rtn( arg ) );}
开发者ID:ABratovic,项目名称:open-watcom-v2,代码行数:27,


示例10: readAuxInfo

static void readAuxInfo( AUX_INFO *i ){    unsigned    len;    PCHReadVar( *i );    AsmSysPCHReadCode( i );    len = PCHGetUInt( i->parms );    if( len != 0 ) {        i->parms = CMemAlloc( len );        PCHRead( i->parms, len );    }    len = PCHGetUInt( i->objname );    if( len != 0 ) {        i->objname = CMemAlloc( len );        PCHRead( i->objname, len );    }}
开发者ID:ABratovic,项目名称:open-watcom-v2,代码行数:17,


示例11: PragAlias

// #pragma alias(id1/"name1", id2/"name2")//// Causes linker to replace references to id1/name1 with references// to id2/name2. Both the alias and the substituted symbol may be defined// either as a string name or an id of existing symbol.//static void PragAlias( void )/***************************/{    SYM_HANDLE      alias_sym;    SYM_HANDLE      subst_sym;    const char      *alias_name;    const char      *subst_name;    alias_list      **alias;    alias_list      *new_alias;    alias_name = subst_name = NULL;    alias_sym  = subst_sym  = NULL;    if( ExpectingToken( T_LEFT_PAREN ) ) {        PPCTL_ENABLE_MACROS();        PPNextToken();        if( CurToken == T_ID ) {            alias_sym = SymLook( HashValue, Buffer );            if( alias_sym == 0 ) {                CErr2p( ERR_UNDECLARED_SYM, Buffer );            }        } else if( CurToken == T_STRING ) {            alias_name = CStrSave( Buffer );        }        PPNextToken();        MustRecog( T_COMMA );        if( CurToken == T_ID ) {            subst_sym = SymLook( HashValue, Buffer );            if( subst_sym == 0 ) {                CErr2p( ERR_UNDECLARED_SYM, Buffer );            }        } else if( CurToken == T_STRING ) {            subst_name = CStrSave( Buffer );        }        PPNextToken();        PPCTL_DISABLE_MACROS();        MustRecog( T_RIGHT_PAREN );    }    /* Add a new alias record - if it's valid - to the list */    if( ( alias_name != NULL || alias_sym != NULL ) && ( subst_name != NULL || subst_sym != NULL ) ) {        for( alias = &AliasHead; *alias != NULL; alias = &(*alias)->next )            ; /* nothing to do */        new_alias = (void *)CMemAlloc( sizeof( alias_list ) );        new_alias->next = NULL;        if( alias_name ) {            new_alias->name = alias_name;        } else {            new_alias->a_sym = alias_sym;        }        if( subst_name ) {            new_alias->subst = subst_name;        } else {            new_alias->s_sym = subst_sym;        }        *alias = new_alias;    }}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:64,


示例12: pragIncludeAlias

// form: #pragma include_alias( "alias_name", "real_name" )//       #pragma include_alias( <alias_name>, <real_name> )//// (1) causes include directives referencing alias_name to refer//     to real_name instead//static void pragIncludeAlias( void ){    if( ExpectingToken( T_LEFT_PAREN ) ) {        PPCTL_ENABLE_MACROS();        NextToken();        if( CurToken == T_STRING ) {            char    *alias_name;            alias_name = CMemAlloc( strlen( Buffer ) + 1 );            strcpy( alias_name, Buffer );            NextToken();            if( ExpectingToken( T_COMMA ) ) {                NextToken();            }            if( CurToken == T_STRING ) {                IAliasAdd( alias_name, Buffer, false );                NextToken();            }            CMemFree( alias_name );        } else if( CurToken == T_LT ) {            char    a_buf[82];            char    r_buf[82];            a_buf[0] = '/0';            for( ;; ) {                NextToken();                if( CurToken == T_GT ) {                    NextToken();                    break;                }                if( CurToken == T_NULL ) {                    break;                }                strncat( a_buf, Buffer, sizeof( a_buf ) - 2 );            }            if( ExpectingToken( T_COMMA ) ) {                NextToken();            }            if( CurToken == T_LT ) {                r_buf[0] = '/0';                for( ;; ) {                    NextToken();                    if( CurToken == T_GT ) {                        NextToken();                        break;                    }                    if( CurToken == T_NULL ) {                        break;                    }                    strncat( r_buf, Buffer, sizeof( r_buf ) - 2 );                }                IAliasAdd( a_buf, r_buf, true );            }        }        PPCTL_DISABLE_MACROS();        MustRecog( T_RIGHT_PAREN );    }}
开发者ID:Azarien,项目名称:open-watcom-v2,代码行数:64,


示例13: CMemAlloc

static void *dw_alloc( size_t size )/**********************************/{    char        *p;    p = CMemAlloc( size );    memset( p, 0xA5, size );    return( p );}
开发者ID:ArmstrongJ,项目名称:open-watcom-v2,代码行数:9,


示例14: CreateAux

void CreateAux( char *id )/************************/{    CurrEntry = (aux_entry *)CMemAlloc( offsetof( aux_entry, name ) + strlen( id ) + 1 );    strcpy( CurrEntry->name, id );#if _CPU == 370    CurrEntry->offset = -1;#endif}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:9,


示例15: PushEnum

// forms: (1) #pragma enum int//        (2) #pragma enum minimum//        (3) #pragma enum original//        (4) #pragma enum pop//// The pragma affects the underlying storage-definition for subsequent// enum declarations.//// (1) make int the underlying storage definition (same as -ei)// (2) minimize the underlying storage definition (same as no -ei)// (3) reset back to result of command-line parsing// (4) restore previous value//// 1-3 all push previous value before affecting value//static void PushEnum( void ) {/***************************/    struct enums_info *ei;    ei = CMemAlloc( sizeof( struct enums_info ) );    ei->make_enums = CompFlags.make_enums_an_int;    ei->next = EnumInfo;    EnumInfo = ei;}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:24,


示例16: macroStorageAlloc

static void macroStorageAlloc( void ){    macroHashTable = CMemAlloc( HASH_TABLE_SIZE );    memset( macroHashTable, 0, HASH_TABLE_SIZE );    macroSegmentList = NULL;    beforeIncludeChecks = NULL;    undefCount = 0;    MacroOffset = NULL;    macroSegmentLimit = 0;}
开发者ID:jossk,项目名称:open-watcom-v2,代码行数:10,


示例17: CMemAlloc

char *vctsave(                  // ALLOCATE AND SAVE VECTOR AS STRING    const char *vector,         // - source vector    size_t vsize )              // - size of source vector{    char * new_str;             // - target string    new_str = (char *) CMemAlloc( vsize + 1 );    stvcpy( new_str, vector, vsize );    return( new_str );}
开发者ID:ABratovic,项目名称:open-watcom-v2,代码行数:10,


示例18: PCHReadPragmas

pch_status PCHReadPragmas( void ){    unsigned    size;    unsigned    max_index;    unsigned    entry_len;    unsigned    index;    AUX_ENTRY   *e;    AUX_ENTRY   *f;    AUX_ENTRY   *next_f;    AUX_INFO    *info;    for( f = AuxList; f != NULL; f = next_f ) {        next_f = f->next;        freeAuxInfo( f->info );        CMemFree( f->info );        CMemFree( f );    }    max_index = PCHReadUInt();    size = max_index * sizeof( AUX_INFO * );    infoTranslate = CMemAlloc( size );    memset( infoTranslate, 0, size );    // read all aux_info    for( index = PCH_FIRST_INDEX; index < max_index; ++index ) {        if( index < PCH_FIRST_USER_INDEX ) {            info = BuiltinAuxInfo + index - PCH_FIRST_INDEX;        } else {            info = CMemAlloc( sizeof( AUX_INFO ) );        }        infoTranslate[index] = info;        readAuxInfo( info );    }    // read aux entries    AuxList = NULL;    for( ; (entry_len = PCHReadUInt()) != 0; ) {        e = CMemAlloc( offsetof( AUX_ENTRY, name ) + entry_len + 1 );        PCHRead( e->name, entry_len + 1 );        e->info = PragmaMapIndex( PCHSetUInt( PCHReadUInt() ) );        e->next = AuxList;        AuxList = e;    }    return( PCHCB_OK );}
开发者ID:ABratovic,项目名称:open-watcom-v2,代码行数:42,


示例19: CmdLnCtxPushEnv

void CmdLnCtxPushEnv(           // PUSH FOR ENVIRONMENT-VARIABLE PROCESSING    char const *var )           // - environment variable{    CTX_CL* entry;              // - new entry    size_t size;                // - variable size    entry = cmdLnCtxAlloc( CTX_CLTYPE_ENV );    size = strlen( var ) + 1;    entry->env.var = CMemAlloc( size );    memcpy( (void*)entry->env.var, var, size );}
开发者ID:Ukusbobra,项目名称:open-watcom-v2,代码行数:11,


示例20: strlen

char *AddUndefName( const char *str ){    size_t          len;    undef_names     *uname;    len = strlen( str );    if( len == 0 ) {        CompFlags.undefine_all_macros = 1;    } else {        CalcHash( str, len );        if( !MacroDel( str ) ) {            uname = (undef_names *)CMemAlloc( sizeof( undef_names ) );            uname->next = UndefNames;            uname->name = CMemAlloc( len + 1 );            memcpy( uname->name, str, len + 1 );            UndefNames = uname;            str += len;        }    }    return( (char *)str );}
开发者ID:ABratovic,项目名称:open-watcom-v2,代码行数:21,



注:本文中的CMemAlloc函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ CMemFree函数代码示例
C++ CMargTest函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。