请教一道题的理解思路
1,编写一个函数new,对n个字符开辟连续的存储空间网上找的答案:
#define NEWSIZE 1000
char newbuf[NEWSIZE];
char *newp=newbuf;
char *new(int n)
{
if(newp+n<=newbuf+NEWSIZE)
{
newp=newp+n;
return newp-n;//这里看不懂,为何newp已经到了newp+n,再减去n返回呢?
}
else
return NULL;
2,写一函数free,将上题用new函数占用的空间释放
网上找的答案:
#define NEWSIZE 1000
char newbuf[NEWSIZE];
char *newp=newbuf;
void free(char *p)
{
if(p>=newbuf&&p<newbuf+NEWSIZE)
newp=p;//这句话是什么意思?把P的值赋给了newp,就算是把空间释放了?
}
刚刚学C,大家帮我解说一下,呵呵