#include <stdio.h>
/*
- new 来分配空间,此函数用来说明如何分配空间
- free 用来释放一段已经分配的空间
*/
#define MAXSIZE 1000
char buffsize[MAXSIZE]; // 定义一个存储区
char *pbuff = buffsize; // pbuff 指向可用空间的起始地址
// 分配空间
char *new(int n)
{
if((pbuff + n) > (pbuff + MAXSIZE)) //用来判断是否超出最大空间
return NULL;
else
pbuff = pbuff + n; // pbuff用来指向存储区的末尾
return (pbuff - n); // 返回的指针指向存储区的起始地址
}
void free(char *p) // P 已经分配的空间的首地址
{
if( p >= buffsize && p < buffsize + MAXSIZE) //buffsize 是存储的起始地址,不可以用 pbuff代替,因为在二次分配空间时,pbuff的指向会导致判断出错
pbuff = p; //pbuff 指向p的起始地址,回收存储空间
}