题目
本题是谭浩强《C程序设计课后习题》题8.19。
题目:
(1) 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针
(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。
(2)写一函数free,将前面用new函数占用的空间释放。free§表示将p(地址)指向的单元以后
的内存段释放。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>
2.主函数部分
代码如下(示例):
char* new(int size)
{
return (char*)malloc(size);
}
char myfree(char* p)
{
return free((void*)p);
}
int main()
{
char* p = NULL;
printf("初始化的指针地址为:%p\n", p);
p = new(32);
printf("请输入一个字符串:");
scanf("%s", p);
printf("申请空间后的地址:%p--%s\n", p, p);
myfree(p);
printf("释放空间后的地址:%p--%s\n", p, p);
return 0;
}
三、执行结果
输出:
初始化的指针地址为:00000000
请输入一个字符串:a
申请空间后的地址:00A351B8--a
释放空间后的地址:00A351B8--葺葺葺葺葺葺葺葺葺葺葺葺葺葺葺葺葺葺