是否应该在自定义库的函数的参数中的一个作为返回值的空指针进行内存分配?
现在做一个复用的函数,并且将作为一个库的一部分,假设函数功能是取一个字符串的中间一些字符,函数原型为:
int strmid(char *source,int start,int len,char *object)
函数的功能是取字符串source中的从start开始的len个字符并将之放入char指针object中,我想问的是如果object为null,那么在函数中是应该给object分配空间呢还是让函数返回一个错误信息而将返回值置为-1之类的值呢?如果分配空间,那么由于是在未来的代码外分配的内存,代码的作者可能忘记内存的释放而造成内存泄漏,如果不分配内存而返回错误又好像不太合适。
大家觉得该如何做才合理呢?