我有已建立一些C +陣列如下:轉換字符串的非常量字符*
std:array<const char *, 4) test1 = {abc.c_str(), def.c_str(), ghi.c_str()};
其中abc
,def
,ghi
是std::string
我具有與本數組傳遞給另一個功能有以下原型: (int argc, char * argv[])
我應該如何修改數組,使non-const char*
可以傳遞給abov e功能。或者我應該修改函數爲const char *。我不確定該函數是否嘗試修改char *,因爲此函數代碼不是我的,也不是當前可用的。
但是,無論如何,最好問我如何將非const char *數組傳遞給上述函數?
+'strdup()'/'free()'在原型函數修改字符串的情況下。 –
如果你不介意我問,'abc.c_str();'等什麼?它有什麼副作用? – chris
@chris:它確保字符串內容後面跟着一個NUL字節。 –