渡す必要のある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*配列を生成するにはどうすればよいですか(これは戻る前に削除する必要があるため)メモリリークを回避するための関数から)。