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]等也不是更新。 –