首页 > 试题广场 >

(1)编写一个函数new,对n个字符开辟连续的存储空间,此函

[问答题]

1)编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针

(地址),指向字符串开始的空间。newn)表示分配n个字节的内存空间。要求用指针方法处理。

2)写一函数free,将前面用new函数占用的空间释放。free(p)表示将p(地址)指向

的单元以后的内存段释放。要求用指针方法处理。

推荐

1.

#include<stdio.h>

#define NEWSIZE 1000                      //指定开辟存区的最大容量

char newbuf[NEWSIZE];                     //定义字符数组newbuf

char *newp=new buf;                   //定义指针变量newp,指向可存区的始端


char *new(int n)                  //定义开辟存区的函数new,开辟存储区后返回指针

{if(newp+n<=newbuf+NEWSIZE)                 //开辟区未超过newbuf数组的大小

{newp+=n;                                //newp指向存储区的末尾

return(newp-n);                   //返回一个指针,它指向存区的开始位置

}

else

return(NULL);                       //当存区不够分配时,返回一个空指针

}

2.

#include<stdio.h>

#define NEWSIZE 1000

char newbuf[NEWSIZE];

char *newp=newbuf;


void free(char*p)                              //释放存区函数

{if(p>=newbuf && p< newbuf+NEWSIZE)

newp=p;

}


发表于 2018-03-25 10:33:25 回复(0)