主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