运行出错,怎么改正?谢谢
本帖最后由 haiouda 于 2015-3-27 11:31 编辑/********************************************************************************
1)编写一个函数 new ,对 n 个字符开辟连续的存储空间,此函数应返回一个指针(地址),
指向字符串开始的空间。 new(n)表示分配 n 个字节的内存空间。
2)写一个函数 free,将前面用 enw 函数占用的空间释放。 free(p)表示将p(地址)指向
的单元以后的内存段释放。
*********************************************************************************/
#if(1)
#include <stdio.h>
#define NEWSIZE 1000 //指定开辟存区的最大容量
void main()
{
char newbuf; //定义字符数组newbuf
char *newp=newbuf; //定义指针变量newp,指向可存区的始端
char *new(int n);
void free(char *p);
new(10);
free(newp);
}
char *new(int n) //定义开辟存区的函数new,开辟存储区后返回指针
{char newbuf; //定义字符数组newbuf
char *newp=newbuf; //定义指针变量newp,指向可存区的始端
if (newp+n<=newbuf+NEWSIZE)//开辟区未超过newbuf数组的大小
{
// newp+=n;// newp指向存储区的末尾
return(newp-n);//返回一个指针,它指向存区的开始位置
}
else
return(NULL);//当存区不够分配时,返回一个空指针
}
void free(char *p)//释放存区函数
{
char newbuf; //定义字符数组newbuf
char *newp=newbuf; //定义指针变量newp,指向可存区的始端
if (p>=newbuf && p<=newbuf + NEWSIZE)
newp=p;
}
#endif
请问楼主,你所说的错误是指什么,我运行了下,没报错 雪是梅之香 发表于 2015-3-27 09:47
请问楼主,你所说的错误是指什么,我运行了下,没报错
上图了 new是关键字不能用作函数名改个名字就能编译通过了
至于你的链接错误也是函数命名的问题 c函数库中已经free函数了
优雅的独行者 发表于 2015-3-27 12:30
new是关键字不能用作函数名改个名字就能编译通过了
至于你的链接错误也是函数命名的问题 c函数库中已经fre ...
谢谢
页:
[1]