Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47054
  • 博文数量: 33
  • 博客积分: 1301
  • 博客等级: 中尉
  • 技术积分: 335
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-31 21:06
文章分类
文章存档

2009年(33)

我的朋友

分类: C/C++

2009-06-03 12:31:36

5.4 Address Arithmetic
 
其中存储分配的例子挺重要的。

#define ALLOCSIZE 10000

char allocbuf[ALLOCSIZE];
char *allocp = allocbuf;
char *alloc(int n){
    if(allocp + n <= allocbuf + ALLOCSIZE){
        alloc += n;
        return alloc - n;
    }else return 0;
}
void afree(char *p){
    if(p > allocbuf && p < allocbuf + ALLOCSIZE)
        allocp = p;
}

 
虽然有不足,但是非常典型!
阅读(275) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~