能帮小弟我解释下最后一句吗?多谢

能帮我解释下最后一句吗?谢谢
我们使用指针allocp 指向
allocbuf 中的下一个空闲单元。当调用alloc 申请n 个字符的空间时,alloc 检查
allocbuf 数组中有没有足够的剩余空间。如果有足够的空闲空间,则alloc 返回allocp
的当前值(即空闲块的开始位置),然后将allocp加n以使它指向下一个空闲区域。如果空
闲空间不够,则alloc返回0。如果p在allocbuf的边界之内,则afree(p)仅仅只是将
allocp的值设置为p(参见图5-6)。
#define ALLOCSIZE 10000 /* size of available space */
static char allocbuf[ALLOCSIZE]; /* storage for alloc */
static char *allocp = allocbuf; /* next free position */
char *alloc(int n) /* return pointer to n characters */
{
if (allocbuf + ALLOCSIZE - allocp >= n) { /* it fits */就是这句为什么这句能判定出有没有剩余空间?不太理解..
希望各位前辈能给讲解下,谢谢~!


------解决方案--------------------
C/C++ code
allocbuf + ALLOCSIZE - allocp >= n

------解决方案--------------------
allocbuf + ALLOCSIZE - allocp >= n
指针+int还是指针
再减指针为偏移量,数组型
再和n比较

数字直接-指针是错误的