pmem.cxx

来自「PTypes是一个扩充了多线程和网络功能的STL库」· CXX 代码 · 共 87 行

CXX
87
字号
/* * *  C++ Portable Types Library (PTypes) *  Version 2.0.2  Released 17-May-2004 * *  Copyright (C) 2001-2004 Hovik Melikyan * *  http://www.melikyan.com/ptypes/ * */#include <stdlib.h>#include "pport.h"PTYPES_BEGINconst int quant = 64;const int qmask = ~63;const int quant2 = 4096;const int qmask2 = ~4095;// dynamic reallocation policy for strings and listsint ptdecl memquantize(int a){    if (a <= 16)        return 16;    if (a <= 32)        return 32;    else if (a <= 2048)        return (a + quant - 1) & qmask;    else        return (a + quant2 - 1) & qmask2;}void ptdecl memerror() {    fatal(CRIT_FIRST + 5, "Not enough memory");}void* ptdecl memalloc(uint a) {    if (a == 0)        return nil;    else    {        void* p = malloc(a);        if (p == nil)             memerror();        return p;    }}void* ptdecl memrealloc(void* p, uint a) {    if (a == 0)    {        memfree(p);        return nil;    }    else if (p == nil)        return memalloc(a);    else    {        p = realloc(p, a);        if (p == nil)             memerror();        return p;    }}void ptdecl memfree(void* p) {    if (p != nil)        free(p);}PTYPES_END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?