函数要返回一个字符串,该怎么为其分配空间
oyd 2003-03-19 09:23:00 假设我现在要实现这么一个功能
一个数组char * a[2]={"aaa","bbb"}
而函数func(char **)要求把数组中的字符串拼在一起
返回"aaabbb"
如果我这么写
char * func(char *a[])
{
int n=strlen(a[1])+strlen(a[0]);
char *p=new char(0);
strcat(p,a[0]);
strcat(p,a[1]);
return p;
}
void main()
{
char *a[2]={"aaa","bbb"};
char *p=func(a);
printf("%s\n",p);
}
它的输出是aaabbb
但是很疑惑,这样new出来的空间没有delete,会不会存在内存泄漏.
各位有没有好的实现方法