c程序设计第四版谭浩强
1. 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。
2. 写一函数free,将前面(上题)用new函数占用的空间释放。Free(p)表示将p(地址)指向的单元以后的内存段释放。
1题的【c源程序】
#include <stdio.h>
#define NEWSIZE 1000 //指定开辟存区的最大容量
char newbuf[NEWSIZE]; //定义字符数组newbuf
char *newp=newbuf; //定义指针变量newp,指向可存区的始端
char *new(int n) //定义开辟存区的函数new,开辟存储区后返回指针
{if (newp+n<=newbuf+NEWSIZE) // 开辟区未超过newbuf数组的大小
{newp+=n; // newp指向存储区的末尾
return(newp-n); // 返回一个指针,它指向存区的开始位置
}
else
return(NULL); // 当存区不够分配时,返回一个空指针
}
2题的【c源程序】
#include <stdio.h>
#define NEWSIZE 1000
char newbuf[NEWSIZE];
char *newp=newbuf;
void free(char *p) //释放存区函数
{if (p>=newbuf && p< newbuf + NEWSIZE)
newp=p;
}
本文链接:http://www.wb98.com/c/post/tanhaoqiang_8.19.html
本站文章搜索: