嗨,非常新手的问题,但我就是想不通:
我有一个名为 bar 的函数
class foo
{
public:
bool bar(int argc, char** argv);
}
argv 应该包含
"--dir" and "/some_path/"
如何创建 argv 和 argc 以便我可以将它们传递给 bar() ?我尝试了很多方法,但我无法正确地进行指针和类型转换。
因此,我不想从命令行获取 argv,而是想在代码中创建它。
感谢您的任何意见!
原文由 KKsan 发布,翻译遵循 CC BY-SA 4.0 许可协议
我最喜欢的方式是这样的:
请注意,如果参数是静态的并且不会改变,那么这有点矫枉过正。但是这种方法具有符合 RAII 的优点。它为您管理内存并在适当的时候删除对象。因此,如果参数列表是动态的,那么它是最干净的方式。
除此之外,如果
f.bar
修改了 argv 数组中的数据,则此代码在技术上是 UB。通常情况并非如此。