如上为库函数 strcat 的仿写 功能为连接两个字符串
char *strat(char *dst,const char *src)
{
char *cp = (char*)calloc(12,sizeof(char));//申请一块够大的内存 足以存放两个字符串
char *cq = cp;
strcpy(cp,dst);//把目的字符串拷到申请的内存中
while(*cq)
cq++;
while(*src) //完成连接工作
{
*cq = *src;
src++;
cq++;
}
return cp;
//问题是:上边刚申请的空间 现在需要释放吗?还是说在最后主函数中释放 肯定是要释放 //的!
}
int main()
{
char *P = NULL;
char s[]="abcd";
char t[]="efgh";
P = strat(s,t);
printf("%s",P);
free(P);//?????????????????????????????????
return 0;
}
转载于:https://blog.51cto.com/18392655994/1747688