亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? memalloc.c

?? clips源代碼
?? C
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
   if (size >= MEM_TABLE_SIZE)     {      tmpPtr = (char *) genalloc(theEnv,(unsigned) size);      for (i = 0 ; i < size ; i++)        { tmpPtr[i] = '\0'; }      return((void *) tmpPtr);     }   memPtr = (struct memoryPtr *) MemoryData(theEnv)->MemoryTable[size];   if (memPtr == NULL)     {      tmpPtr = (char *) genalloc(theEnv,(unsigned) size);      for (i = 0 ; i < size ; i++)        { tmpPtr[i] = '\0'; }      return((void *) tmpPtr);     }   MemoryData(theEnv)->MemoryTable[size] = memPtr->next;   tmpPtr = (char *) memPtr;   for (i = 0 ; i < size ; i++)     { tmpPtr[i] = '\0'; }   return ((void *) tmpPtr);  }/*****************************************************//* gm2: Allocates memory and does not initialize it. *//*****************************************************/globle void *gm2(  void *theEnv,  size_t size)  {   struct memoryPtr *memPtr;      if (size < sizeof(char *)) size = sizeof(char *);   if (size >= MEM_TABLE_SIZE) return(genalloc(theEnv,(unsigned) size));   memPtr = (struct memoryPtr *) MemoryData(theEnv)->MemoryTable[size];   if (memPtr == NULL)     {      return(genalloc(theEnv,(unsigned) size));     }   MemoryData(theEnv)->MemoryTable[size] = memPtr->next;   return ((void *) memPtr);  }/*****************************************************//* gm3: Allocates memory and does not initialize it. *//*****************************************************/globle void *gm3(  void *theEnv,  size_t size)  {   struct memoryPtr *memPtr;   if (size < (long) sizeof(char *)) size = sizeof(char *);   if (size >= MEM_TABLE_SIZE) return(genalloc(theEnv,size));   memPtr = (struct memoryPtr *) MemoryData(theEnv)->MemoryTable[(int) size];   if (memPtr == NULL)     { return(genalloc(theEnv,size)); }   MemoryData(theEnv)->MemoryTable[(int) size] = memPtr->next;   return ((void *) memPtr);  }/****************************************//* rm: Returns a block of memory to the *//*   maintained pool of free memory.    *//****************************************/globle int rm(  void *theEnv,  void *str,  size_t size)  {   struct memoryPtr *memPtr;   if (size == 0)     {      SystemError(theEnv,"MEMORY",1);      EnvExitRouter(theEnv,EXIT_FAILURE);     }   if (size < sizeof(char *)) size = sizeof(char *);   if (size >= MEM_TABLE_SIZE) return(genfree(theEnv,(void *) str,(unsigned) size));   memPtr = (struct memoryPtr *) str;   memPtr->next = MemoryData(theEnv)->MemoryTable[size];   MemoryData(theEnv)->MemoryTable[size] = memPtr;   return(1);  }/********************************************//* rm3: Returns a block of memory to the    *//*   maintained pool of free memory that's  *//*   size is indicated with a long integer. *//********************************************/globle int rm3(  void *theEnv,  void *str,  size_t size)  {   struct memoryPtr *memPtr;   if (size == 0)     {      SystemError(theEnv,"MEMORY",1);      EnvExitRouter(theEnv,EXIT_FAILURE);     }   if (size < (long) sizeof(char *)) size = sizeof(char *);   if (size >= MEM_TABLE_SIZE) return(genfree(theEnv,(void *) str,(unsigned long) size));   memPtr = (struct memoryPtr *) str;   memPtr->next = MemoryData(theEnv)->MemoryTable[(int) size];   MemoryData(theEnv)->MemoryTable[(int) size] = memPtr;   return(1);  }/***************************************************//* PoolSize: Returns number of bytes in free pool. *//***************************************************/globle unsigned long PoolSize(  void *theEnv)  {   register int i;   struct memoryPtr *memPtr;   unsigned long cnt = 0;   for (i = sizeof(char *) ; i < MEM_TABLE_SIZE ; i++)     {      memPtr = MemoryData(theEnv)->MemoryTable[i];      while (memPtr != NULL)        {         cnt += (unsigned long) i;         memPtr = memPtr->next;        }     }   return(cnt);  }/***************************************************************//* ActualPoolSize : Returns number of bytes DOS requires to    *//*   store the free pool.  This routine is functionally        *//*   equivalent to pool_size on anything other than the IBM-PC *//***************************************************************/globle unsigned long ActualPoolSize(  void *theEnv)  {#if IBM_TBC   register int i;   struct memoryPtr *memPtr;   unsigned long cnt = 0;   for (i = sizeof(char *) ; i < MEM_TABLE_SIZE ; i++)     {      memPtr = MemoryData(theEnv)->MemoryTable[i];      while (memPtr != NULL)        {         /*==============================================================*/         /* For a block of size n, the Turbo-C Library routines require  */         /* a header of size 8 bytes and further require that all memory */         /* allotments be paragraph (16-bytes) aligned.                  */         /*==============================================================*/         cnt += (((unsigned long) i) + 19L) & 0xfffffff0L;         memPtr = memPtr->next;        }     }   return(cnt);#else   return(PoolSize(theEnv));#endif  }/********************************************//* EnvSetConserveMemory: Allows the setting *//*    of the memory conservation flag.      *//********************************************/globle intBool EnvSetConserveMemory(  void *theEnv,  intBool value)  {   int ov;   ov = MemoryData(theEnv)->ConserveMemory;   MemoryData(theEnv)->ConserveMemory = value;   return(ov);  }/*******************************************//* EnvGetConserveMemory: Returns the value *//*    of the memory conservation flag.     *//*******************************************/globle intBool EnvGetConserveMemory(  void *theEnv)  {   return(MemoryData(theEnv)->ConserveMemory);  }/**************************//* genmemcpy:             *//**************************/globle void genmemcpy(  char *dst,  char *src,  unsigned long size)  {   unsigned long i;   for (i = 0L ; i < size ; i++)     dst[i] = src[i];  }/**************************//* BLOCK MEMORY FUNCTIONS *//**************************/#if BLOCK_MEMORY/***************************************************//* InitializeBlockMemory: Initializes block memory *//*   management and allocates the first block.     *//***************************************************/static int InitializeBlockMemory(  void *theEnv,  unsigned int requestSize)  {   struct chunkInfo *chunkPtr;   unsigned int initialBlockSize, usableBlockSize;   /*===========================================*/   /* The block memory routines depend upon the */   /* size of a character being 1 byte.         */   /*===========================================*/   if (sizeof(char) != 1)     {      fprintf(stdout, "Size of character data is not 1\n");      fprintf(stdout, "Memory allocation functions may not work\n");      return(0);     }   MemoryData(theEnv)->ChunkInfoSize = sizeof(struct chunkInfo);   MemoryData(theEnv)->ChunkInfoSize = (int) ((((MemoryData(theEnv)->ChunkInfoSize - 1) / STRICT_ALIGN_SIZE) + 1) * STRICT_ALIGN_SIZE);   MemoryData(theEnv)->BlockInfoSize = sizeof(struct blockInfo);   MemoryData(theEnv)->BlockInfoSize = (int) ((((MemoryData(theEnv)->BlockInfoSize - 1) / STRICT_ALIGN_SIZE) + 1) * STRICT_ALIGN_SIZE);   initialBlockSize = (INITBLOCKSIZE > requestSize ? INITBLOCKSIZE : requestSize);   initialBlockSize += MemoryData(theEnv)->ChunkInfoSize * 2 + MemoryData(theEnv)->BlockInfoSize;   initialBlockSize = (((initialBlockSize - 1) / STRICT_ALIGN_SIZE) + 1) * STRICT_ALIGN_SIZE;   usableBlockSize = initialBlockSize - (2 * MemoryData(theEnv)->ChunkInfoSize) - MemoryData(theEnv)->BlockInfoSize;   /* make sure we get a buffer big enough to be usable */   if ((requestSize < INITBLOCKSIZE) &&       (usableBlockSize <= requestSize + MemoryData(theEnv)->ChunkInfoSize))     {      initialBlockSize = requestSize + MemoryData(theEnv)->ChunkInfoSize * 2 + MemoryData(theEnv)->BlockInfoSize;      initialBlockSize = (((initialBlockSize - 1) / STRICT_ALIGN_SIZE) + 1) * STRICT_ALIGN_SIZE;      usableBlockSize = initialBlockSize - (2 * MemoryData(theEnv)->ChunkInfoSize) - MemoryData(theEnv)->BlockInfoSize;     }   MemoryData(theEnv)->TopMemoryBlock = (struct blockInfo *) malloc((STD_SIZE) initialBlockSize);   if (MemoryData(theEnv)->TopMemoryBlock == NULL)     {      fprintf(stdout, "Unable to allocate initial memory pool\n");      return(0);     }   MemoryData(theEnv)->TopMemoryBlock->nextBlock = NULL;   MemoryData(theEnv)->TopMemoryBlock->prevBlock = NULL;   MemoryData(theEnv)->TopMemoryBlock->nextFree = (struct chunkInfo *) (((char *) MemoryData(theEnv)->TopMemoryBlock) + MemoryData(theEnv)->BlockInfoSize);   MemoryData(theEnv)->TopMemoryBlock->size = (long) usableBlockSize;   chunkPtr = (struct chunkInfo *) (((char *) MemoryData(theEnv)->TopMemoryBlock) + MemoryData(theEnv)->BlockInfoSize + MemoryData(theEnv)->ChunkInfoSize + usableBlockSize);   chunkPtr->nextFree = NULL;   chunkPtr->lastFree = NULL;   chunkPtr->prevChunk = MemoryData(theEnv)->TopMemoryBlock->nextFree;   chunkPtr->size = 0;   MemoryData(theEnv)->TopMemoryBlock->nextFree->nextFree = NULL;   MemoryData(theEnv)->TopMemoryBlock->nextFree->lastFree = NULL;   MemoryData(theEnv)->TopMemoryBlock->nextFree->prevChunk = NULL;   MemoryData(theEnv)->TopMemoryBlock->nextFree->size = (long) usableBlockSize;   MemoryData(theEnv)->BlockMemoryInitialized = TRUE;   return(1);  }/***************************************************************************//* AllocateBlock: Adds a new block of memory to the list of memory blocks. *//***************************************************************************/static int AllocateBlock(  void *theEnv,  struct blockInfo *blockPtr,  unsigned int requestSize)  {   unsigned int blockSize, usableBlockSize;   struct blockInfo *newBlock;   struct chunkInfo *newTopChunk;   /*============================================================*/   /* Determine the size of the block that needs to be allocated */   /* to satisfy the request. Normally, a default block size is  */   /* used, but if the requested size is larger than the default */   /* size, then the requested size is used for the block size.  */   /*============================================================*/   blockSize = (BLOCKSIZE > requestSize ? BLOCKSIZE : requestSize);   blockSize += MemoryData(theEnv)->BlockInfoSize + MemoryData(theEnv)->ChunkInfoSize * 2;   blockSize = (((blockSize - 1) / STRICT_ALIGN_SIZE) + 1) * STRICT_ALIGN_SIZE;   usableBlockSize = blockSize - MemoryData(theEnv)->BlockInfoSize - (2 * MemoryData(theEnv)->ChunkInfoSize);   /*=========================*/   /* Allocate the new block. */   /*=========================*/   newBlock = (struct blockInfo *) malloc((STD_SIZE) blockSize);   if (newBlock == NULL) return(0);   /*======================================*/   /* Initialize the block data structure. */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女bb生活片| 国产精品久久久久久久久搜平片| 7777精品伊人久久久大香线蕉完整版 | 日韩精品一区第一页| 国产精品系列在线| 欧美激情一区不卡| 久久精品欧美一区二区三区不卡 | 91精品国产乱| 欧美日韩在线不卡| 欧美在线观看视频在线| 欧洲一区二区三区在线| 在线观看网站黄不卡| 欧美亚洲高清一区二区三区不卡| 美女一区二区三区| 另类人妖一区二区av| 日韩va欧美va亚洲va久久| 日韩电影在线一区二区| 日本不卡视频一二三区| 久久国产视频网| 开心九九激情九九欧美日韩精美视频电影 | 国产欧美日韩视频在线观看| 久久久久久免费毛片精品| 国产亚洲精品中文字幕| 欧美激情一区在线观看| 自拍偷自拍亚洲精品播放| ...av二区三区久久精品| 一区二区三区四区视频精品免费 | 亚洲高清免费观看高清完整版在线观看| 欧美一级一级性生活免费录像| 国产东北露脸精品视频| 懂色av一区二区三区免费看| 97久久超碰精品国产| 91在线porny国产在线看| 精品视频一区三区九区| 精品国产髙清在线看国产毛片| 在线观看三级视频欧美| 日韩一二在线观看| 国产网站一区二区| 成人欧美一区二区三区黑人麻豆| 26uuu亚洲综合色| 中文字幕在线一区二区三区| 亚洲妇女屁股眼交7| 开心九九激情九九欧美日韩精美视频电影 | 国产伦精品一区二区三区视频青涩 | 国产精品久久久久久久久动漫 | 亚洲电影视频在线| 天堂影院一区二区| 捆绑调教一区二区三区| 精品一二线国产| 国产精品 欧美精品| 极品尤物av久久免费看| 丰满白嫩尤物一区二区| 色呦呦日韩精品| 欧美久久久影院| 亚洲精品一区在线观看| 国产日韩欧美麻豆| 亚洲精品自拍动漫在线| 日欧美一区二区| 国产精品一级在线| 在线观看一区二区视频| 日韩一区二区三区免费看 | 亚洲欧美成aⅴ人在线观看| 亚洲国产综合91精品麻豆| 美女视频黄免费的久久| 粉嫩一区二区三区性色av| 色综合久久综合| 日韩视频中午一区| 国产精品电影院| 免费不卡在线观看| av成人免费在线观看| 6080国产精品一区二区| 国产人妖乱国产精品人妖| 一区二区高清免费观看影视大全| 国产日韩欧美综合一区| 亚洲激情六月丁香| 免费日本视频一区| 成人免费电影视频| 欧美精品久久久久久久多人混战| 欧美视频在线观看一区二区| 欧美sm美女调教| 一区二区三区在线免费播放| 国产一区二区三区在线观看免费| 国内精品嫩模私拍在线| 欧洲av在线精品| 精品国产成人在线影院| 亚洲一区二区三区免费视频| 成人午夜激情视频| 4438成人网| 伊人夜夜躁av伊人久久| 国产一区二区视频在线| 在线不卡免费欧美| 亚洲欧美区自拍先锋| 国产伦精品一区二区三区免费| 欧美bbbbb| 91福利精品视频| 精品人在线二区三区| 国产精品欧美久久久久一区二区| 国产精品免费人成网站| 午夜影院久久久| 成人av片在线观看| 久久女同精品一区二区| 麻豆精品久久精品色综合| 欧美视频你懂的| 亚洲人成在线播放网站岛国| 国产91对白在线观看九色| 日韩免费视频一区| 一区二区免费看| 欧美精品粉嫩高潮一区二区| 夜夜夜精品看看| 色一区在线观看| 亚洲欧美一区二区三区极速播放| 亚洲一区二区视频在线观看| 94-欧美-setu| 国产精品家庭影院| 国产不卡免费视频| 国产日韩精品久久久| 国产在线精品一区二区夜色| 91精品国产综合久久福利软件| 日韩一二三四区| 亚洲成av人**亚洲成av**| 色婷婷av一区二区三区大白胸| 日韩欧美久久久| 日本亚洲欧美天堂免费| 91精品国产综合久久久久| 视频一区中文字幕| 欧美日韩一区精品| 亚洲综合色成人| 欧美性欧美巨大黑白大战| 亚洲国产精品视频| 欧美日高清视频| 午夜激情综合网| 欧美一区二区日韩| 亚洲综合色自拍一区| 欧美精品高清视频| 免费在线欧美视频| 欧美mv日韩mv亚洲| 国产专区欧美精品| 国产欧美一区二区在线观看| 成人免费视频视频在线观看免费 | 久久综合国产精品| 九色综合狠狠综合久久| 久久影院电视剧免费观看| 国产精品一区二区久激情瑜伽| 欧美日韩国产一级片| 日韩激情av在线| 亚洲精品在线三区| 粉嫩嫩av羞羞动漫久久久| 日韩和的一区二区| 欧美一区二区网站| 久久成人免费日本黄色| 国产亚洲精品超碰| 99视频一区二区| 亚洲一二三四区| 91精品国产麻豆| 美女在线观看视频一区二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品视频一区 二区 三区| 免费成人在线观看| 国产精品午夜免费| 欧美日韩www| 国产不卡高清在线观看视频| 一区二区三区在线播| 91精品国产乱码久久蜜臀| 国产成人免费xxxxxxxx| 亚洲视频在线观看三级| 色视频成人在线观看免| 全部av―极品视觉盛宴亚洲| 国产亚洲一区二区三区四区| 色呦呦日韩精品| 久久国产成人午夜av影院| 综合亚洲深深色噜噜狠狠网站| 国产精品一二一区| 亚洲一区免费在线观看| 亚洲精品在线电影| 91在线一区二区| 一区二区三区欧美激情| 欧美成人aa大片| a美女胸又www黄视频久久| 日韩福利电影在线| 久久色成人在线| 91精品国产品国语在线不卡| 成人免费av资源| 日本欧美一区二区在线观看| 国产精品久久久久久久久图文区| 成人国产精品免费观看视频| 日韩精品免费视频人成| 国产精品久久久久久妇女6080| 精久久久久久久久久久| 亚洲综合激情小说| 久久先锋影音av| 5858s免费视频成人| 色丁香久综合在线久综合在线观看| 日韩码欧中文字| 欧美精品一区二区高清在线观看 | 国产精品国产三级国产普通话99 | 欧美视频一区二区三区四区| 成人夜色视频网站在线观看| 日韩精品五月天| 亚洲美女淫视频| 国产日本一区二区|