私はexecl
にプッシュしたいvector<string>
を(すべてのstd)持っているので、私のベクトルの各メンバーはchar*
として渡されます。これは可能なのか、もしそうなら、私はどのように達成するのですか?ベクトルをvarargsに入れよう
-3
A
答えて
0
いいえ、可能ではありませんが、代わりにexecv
を使用できます。 execv
がVエクター(実際Cアレイ)かかり、一方execl
は、可変長Lを引数の ISTをとります。ただし、std::vector<std::string>
から文字列のC配列(char **
)に変換する必要があります。またexecv
には、NULLで終了する配列が必要です。つまり、配列の最後の要素はNULLポインタである必要があります。しかし、このようなものは動作するはずです:
int exec_my_vector(std::string path, std::vector<std::string> v)
{
const char *cv[v.size() + 1];
unsigned i;
for(i = 0; i < v.size(); i++)
cv[i] = v[i].c_str();
cv[i] = NULL;
return execv(path.c_str(), (char * const *)cv);
}
(免責事項:。そこに必要はありませんexecv
コールの最後に恐ろしいキャストだが、私はそれを回避する方法を把握することはできません)
+1
また、ポインタ自体のベクトルより多くの記憶域を変換する必要はありません。これは元のベクトルの各要素に対して 'c_str()'を呼び出すことで生成できます。 – StoryTeller
関連する問題
- 1. どのようにmockito 2のvarargsに一致しますか?
- 2. varargs配列のコンポーネントタイプはどのように決定されますか?
- 3. numpyを使ってPythonの1つの配列にベクトル束を入れよう
- 4. .txtファイルから数値を取り出してC++のベクトルに入れよう
- 5. ユーザー入力を伴う文字列ベクトル
- 6. C++:ベクトルに含まれるオブジェクトをセットに挿入するにはどうすればよいですか?
- 7. clojure gen-class varargsコンストラクタ
- 8. Java 8ストリームとvarargs
- 9. マクロのlibreoffice calc - varargs
- 10. UIActionSheet varargs initメソッドに文字列の配列を送信するにはどうすればよいですか?
- 11. インタフェースをGroovyのメソッドにvarargsパラメータとして渡すにはどうすればよいですか?
- 12. vimscriptのvarargsを別の関数に渡すにはどうすればよいですか?
- 13. 入れ子のループをベクトル化する
- 14. ベクトルで一連の入力をどのように取るべきですか?
- 15. ベクトルを部分的に別のベクトルに代入すると
- 16. ActionScriptの配列でvarargs関数を呼び出すにはどうすればよいですか?
- 17. 3つの入力ベクトルと4つの出力ベクトルによる線形回帰?
- 18. ベクトルに挿入するC++
- 19. ベクトルに挿入すると値が挿入されない
- 20. Java - varargsによってNullPointerExceptionが発生する
- 21. UITABBarをUINavigation Controllerに入れ子に入れよう
- 22. Facebookにuser_idを手に入れよう
- 23. Tensorflow:ネットワークに2つのベクトルを入力として与えるにはどうすればよいですか?
- 24. 複製要素をベクトルに挿入するにはどうすればよいですか?
- 25. juliaのforループの結果をベクトルに入力するにはどうすればよいですか?
- 26. 要素をSTLベクトル行列に挿入するにはどうすればよいですか?
- 27. numpy配列のベクトルを式に入力するにはどうすればよいですか?
- 28. はどのように私はベクトル
- 29. どのように私のベクトル
- 30. C varargs - va_copyの問題
こんにちは! [ask]と[mcve]の作成方法をご覧ください。これまでに何を試しましたか? – msanford
'char const *'のベクトルに変換し、代わりに 'execv'を使います。 –