我有一个必须传递给它的 C++ 函数char* arguments[]
。这个函数的原型如下:
void somefunc(char* arguments[])
为了将上面的数组传递给这个函数,我从另一个函数生成这个数组,这个函数可以返回这个char* array
输出,这看起来有点像这样。
char** genArgs(int numOfArgs,...)
{
va_list argList;
char** toRet = new char*[numOfArgs];
va_start (arguments, numOfArgs);
for(int cnt = 0; cnt < numOfArgs ; ++cnt)
toRet[cnt] = va_arg(argList, char*);
va_end(arguments);
}
我很困惑如何正确编写上述函数,因为我会将输入传递给类似的函数:genArgs(3, a.c_str(), b.c_str(), c.c_str())
或者genArgs(2, a.c_str(), b.c_str())
如何在不使用 char** 的情况下生成上述 char* 数组(因为在返回之前必须将其删除从函数中避免内存泄漏)。