std::vector<std::string> elems = split(command, ' ');
const int argc = elems.size();
wchar_t** argv = new wchar_t*[argc]();
//wchar_t* argv[10];
for (int i = 0; i < argc; i++) {
const char* arg = elems[i].c_str();
int size = strlen(arg);
size_t length = 0;
wchar_t* e = new wchar_t[size];
mbstowcs_s(&length, e, size + 1, arg, size);
argv[i] = e;
}
這是我試圖將字符串矢量轉換爲wchar_t **的代碼。當我評論第三行並取消註釋第四行時,它可以工作。但是我希望我的wchar_t **能夠堅持下去,所以我想使用第三行而不是第四行。請向我解釋爲什麼第三行不能按預期工作。從矢量<string>轉換爲wchar_t **
出了什麼問題? – pm100
請描述您的問題。取消註釋第三行時會發生什麼? –
當我使用調試器遍歷代碼時,我發現argv [0]被設置爲elems [0],但即使我從0前進到argc,argv [1],argv [2]等也不是更新。 –