⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 balloc.c

📁 遗传算法和神经网络结合
💻 C
字号:
#include "balloc.h"struct b_block *b_mem;struct b_block *b_first;struct b_block *_b_find_block(void *ptr){  struct b_block *block;  block = b_first;  while(block->mem != ptr && block!=NULL){    block = block->next;  }  if(block==NULL){    fprintf(stderr,"_b_find_block error: no such block\n");    exit(EXIT_FAILURE);  }  return block;}void *balloc(size_t mem){  static int first_call=1;  struct b_block *temp;  size_t size;  if(first_call){    first_call = 0;    b_first = (struct b_block*)malloc(sizeof(struct b_block));    b_first->next = NULL;    b_first->prev = NULL;  }  else{    temp = b_first;    b_first = (struct b_block*)malloc(sizeof(struct b_block));    b_first->next = temp;    b_first->prev = NULL;    temp->prev = b_first;  }  size = mem * 100;  b_first->mem = (void*) malloc(size);  b_first->block_size = size;  return(b_first->mem);}void *bealloc(void *ptr, size_t mem){  struct b_block *block;  block = _b_find_block(ptr);  if(mem < block->block_size)    return ptr;  if(mem == 0){    free(ptr);    if(block->next!=NULL)      (block->next)->prev=block->prev;    if(block==b_first)      b_first=block->next;    free(block);    return NULL;  }  block->mem = realloc(ptr,(mem-block->block_size)*10+block->block_size);  return block->mem;}void bfree(void *ptr){  if(ptr!=NULL)    bealloc(ptr,0);} 

⌨️ 快捷键说明

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