strcpy复制一个字符串
看似很简单的题目,其实有着很多陷阱
首先看一个错误的范例:
char *r;
strcpy(r,s);
strcat(r,t);
错误在于:r并未指定地址且未赋予内存空间
好了,该如何做呢
首先,肯定得考虑内存的分配 使用malloc 显式调用分配内存 则也得显式调用释放内存free
不多说了 上代码
char *r;
r=malloc(strlen(s)+strlen(t)+1);//+1主要是考虑之后连接时最后的一个‘\0'结束字符
if(!r)//当内存不足时 返回NULL
{
perror("malloc");
exit(1);
}
strcpy(r,s);
strcat(r,t);
//显式释放内存
free(r);
r = NULL;