我真的很困惑指针和数组的使用。 我想从命令行传递一些值到数组。我需要使用该阵列进行其他处理。将char ** arr转换为char * arr []
int main(int argc, char *argv[])
{
std::vector<const char *> args {};
args.insert(args.end(), argv+1, argv + argc);
const char **arr = args.data();
}
这工作,但不是我想要的,原来的代码使用
const char *arr[] = {"some", "vaule", "here"};
我想传递arr中,而不是里面的代码分配的值。
我需要数组,但下面的代码不起作用。
const char *arr[] = args.data();
所以我想保持我的数组,因为其他处理,我该怎么做呢? 谢谢!
args变量应该用一个构造函数而不是{}来初始化,这就是我的mingw-g ++版本所说的 –
你真的需要'std :: vector'构造的可能性非常小。此外,你不能“将事情传递给数组”。如果你想处理你的命令行参数 - 就这么做;他们就在那里。如果你想迭代它们,你可以考虑['gsl :: span'](https://www.quora.com/What-is-the-span-T-in-the-CppCoreGuidelines)。 –
einpoklum