我想写一个函数来连接两个动态分配的C风格的字符串。我的设计是否正确,您首先必须将目标复制到temp char[]
,删除原始内存分配,获取两个char[]
的长度,分配新的内存并将该新的内存复制到dest[]
?复制/连接动态分配的C风格字符串
所以伪代码:
void concat(char* dest, char *source)
{
char temp = dest;
delete [] dest;
char dest = new char [new size];
copy temp to dest;
copy source to dest;
}
我是不是从根本上误解呢?
返回新分配的“目标”。 – seeplusplus
在这种情况下,我会离开'dest'并分配一个全新的数组并返回一个指向它的指针。存在内存泄漏的可能性,但在这种情况下这不是问题。大小很容易计算,strlen(dest)+ strlen(source)+ 1.然后,您需要附加字符串而不是复制它们。但总的来说,你有正确的想法。 –
太棒了!谢谢! – seeplusplus