Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2509730
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2010-08-31 09:52:49

    写一函数free,将上题用new函数占的空间释放。free(p)表示将p(地址)指向的单元以后的内存释放。
    free的作用是使newp的值改为p.代码如下:
 

#include <stdio.h>
#define NULL 0
#define NEWSIZE 1000
char newbuf[NEWSIZE];
char *newp = newbuf;
char * new(int);
void free(char *);

int main(int argc,char *argv)
{
    system("pause");
    return 0;
}
char * new(int n)
{
     if (newp + n <= newbuf + NEWSIZE)
     {
        newp = newp + n;
        return newp - n;
     }
     else
     {
         return NULL;
     }
}

void free(char *p)
{
     if ((p >= newbuf) && (p <newbuf + NEWSIZE))
     {
        newp = p;
     }
}


阅读(1409) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~