消息关闭
    暂无新消息!
用alloc函数对一个大字符数组allocbuf中的空间进行分配
#define ALLOCSIZE 10000

static char allocbuf[ALLOCSIZE];
static char *allocp=allocbuf;   //下一个空闲位置     这是什么意思,这不是指的数组第一个位置吗

char *alloc(int *n)  //返回指向N个字符的指针
{
  if(allocbuf+ALLOCSIZE-allocp>=n)
    {allocp +=n;
     return allocp-n;
     }
  else return 0;
}
void afree(char *p)
{ if (p>=allocbuf&&p<=allocbuf +ALLOCSIZE)
       p=allocp;
}

1个回答

︿ 0
你猜得对。它记录数组首地址,以后内存分配时,就返回该该地址,然后将该指针往后移动标志未使用内存的首地址。释放内存的时候该指针往前移。