是否应该在自定义库的函数的参数中的一个作为返回值的空指针进行内存分配?

cherami 2001-12-23 07:27:17
现在做一个复用的函数,并且将作为一个库的一部分,假设函数功能是取一个字符串的中间一些字符,函数原型为:
int strmid(char *source,int start,int len,char *object)
函数的功能是取字符串source中的从start开始的len个字符并将之放入char指针object中,我想问的是如果object为null,那么在函数中是应该给object分配空间呢还是让函数返回一个错误信息而将返回值置为-1之类的值呢?如果分配空间,那么由于是在未来的代码外分配的内存,代码的作者可能忘记内存的释放而造成内存泄漏,如果不分配内存而返回错误又好像不太合适。
大家觉得该如何做才合理呢?
...全文
98 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cherami 2001-12-24
  • 打赏
  • 举报
回复
呵呵,我犯了一个低级错误,如果输出指针为NULL,即使在函数中为之分配空间也是不能将该值传递出来的。
zhanghy 2001-12-23
  • 打赏
  • 举报
回复
一般不要这样做,否则会被视作你的函数的memory leak

你可以在函数中检验传进来得指针是否为空
同时在函数的说明中明确的写明需要一个已经分配好的内存
cherami 2001-12-23
  • 打赏
  • 举报
回复
哦,是c的程序。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧