我無法連接兩個const char*
。如何連接兩個const char *?
我這樣做:
const char* p = new char[strlen(metadata.getRoot())+strlen(metadata.getPath())];
strcat(const_cast<char*>(p),metadata.getRoot());
strcat(const_cast<char*>(p),metadata.getPath());
strcpy(const_cast<char*>(args2->fileOrFolderPath),p);
function(args2->fileOrFolderPath);
現在,當我在控制檯上打印可變args2->fileOrFolderPath
則出現正確的輸出...但是當我打電話與變量作爲參數的方法,並與合作變量,然後我得到了分段錯誤。問題是什麼?
你打電話的價值或參考?你嘗試用p調用它嗎? – StackFlowed
爲什麼你使用'const char *'呢?首先,你應該使用'std :: string'或'std :: vector',其次你總是可以在最終需要時轉換爲'const char *'。 –
zerm
順便說一句,你的代碼有內存泄漏,因爲你沒有釋放'p'。無論如何,似乎毫無意義地分配'p',你也可以直接將字符串直接放到'args2-> fileOrFolderPath'指向的內存中。如果它足夠長,你不會檢查。使用'std :: string'的原因是爲了保存處理這類事情的代碼頁面。 –