如上为库函数 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;
}