我正在实现一个函数,我希望它是一个“库质量”函数:
char** str_cat(char** const str, const char * const other ){
if(str==NULL)
return NULL;
if(other==NULL)
return str;
if(*str==NULL)
return str_cpy(str,other);
char* tmp=(char*)calloc(1,strlen(*str)+strlen(other)+1);
if(tmp==NULL)
return NULL;
strcat(strcpy(tmp,*str),other);
*str=tmp;
return str;
}
这是 strcat() 函数的一个版本(不同的签名),可以处理任何极端用例。但是,我的内存不足故障处理方法不适用于大量使用丰富的 str_xxx() API 库的大型应用程序。
问题:有没有更好的解决方案?