主char* argv[]
的參數衰減到char**
,這是不幸的,因爲它不能與只接受數組的std::begin
一起使用。我看到的唯一解決方法是使用不合需要的可變長度數組。有沒有辦法避免數組到指針的衰減?
#include <iostream>
int main(int argc, char* argv[])
{
char* _argv[argc];
for (int i = 0; i < argc; ++i)
_argv[i] = argv[i];
for (arg : _argv)
{
std::cout << arg << " ";
}
return 0;
}
理想我想是這樣的:char* _argv[] = { ... };
實際上,你甚至沒有數組來指針衰減。 'argv'確實是'char **'。但是你需要解決什麼問題? – juanchopanza 2014-10-07 08:43:38
'char * _argv [argc];'不是標準的C++,因爲在C++中沒有可變長度的數組。 – TNA 2014-10-07 08:54:49