我想寫一個函數來連接兩個動態分配的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