gpt4 book ai didi

c++ - 如何将值附加到命令行参数数组?

转载 作者:太空狗 更新时间:2023-10-29 20:09:44 28 4
gpt4 key购买 nike

我的应用程序有入口点

int main(int argc, char *argv[])
{

}

我需要将 *argv 数组扩展到 n+1 并附加一个值。例如,我需要附加 "-app_ver"

我是 C++ 的新手(具有 Java 背景)。我知道我不能改变数组大小,所以我需要任何解决方案(任何复制数组的方法等)

最佳答案

要复制您的 argv,您可以使用指向 char 的指针的 std::vector

std::vector<const char*> new_argv(argv, argv + argc);

然后向其中添加新元素:

new_argv.push_back("-app_ver");
new_argv.push_back(nullptr); // or NULL if you are using an old compiler

然后用新数组替换argv:

argv = new_argv.data(); // or &new_argv[0] if you are using an old compiler
argc = argc + 1;

注意:在普通参数的末尾,应该有一个空指针。它很少被使用(尽管它是标准所要求的);如果您确定您的进一步代码不使用它,并且您只想将一个元素添加到您的 argv 数组,您可以只覆盖空指针,而不使用任何替换 argv。也就是说,忽略上面所有的代码,只需要这样做:

argv[argc++] = "-app_ver";

但是,这很危险 - 如果您决定再添加一个元素,它就会崩溃,如果某些代码要求在最后一个参数之后存在空指针,它可能会崩溃。

关于c++ - 如何将值附加到命令行参数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43372267/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com