//alloc(n)申请一个n个连续字符存储单元,返回连续存储单元的指针
//afree(p)释放已分配的存储单元
#define ALLOCSIZE 10000//可用空间大小
static char allocbuf[ALLOCSIZE]; //alloc使用的存储区
static char *allocp=allocbuf; //allocp为指向下一个空闲位置的指针
char *alloc(int n)
{
if(allocbuf+ALLOCSIZE-allocp>=n){ //有足够的空闲空间
allocp+=n;
return allocp-n; //分配前的指针
}
else //空闲空间不足
return 0;
}
void afree(char *p) //释放p指向的存储区
{
if(p>=allocbuf && p<allocbuf+ALLOCSIZE)
alloc =p;
}