私は文字列ベクトルvector<string> args
を持っています。これは、c文字列に変換してexecvp呼び出しで引数として実行する必要があります。私はエラーを取得し続けている "私のループの行のためのconst char *からchar *への無効な変換。私はこれを修正する方法を理解していない私はexecvpにフィードすることができます。私が遭遇したソリューションの私の問題を修正するように見える。ベクトルをexecvpに送る変換に間違ったタイプ
int argsLen = c->args.size();
char **argv = new char* [c->args.size() + 1];
for (int index = 0; index < c->args.size(); ++index)
argv[index] = c->args[index].c_str();//note that c is the structure in which args is contained
argv[c->args.size() + 1] = NULL;
//execvp(argv[0], argv);
これが機能しました。ありがとうございました! – minusila
どのように 'strcpy'を未割り当て領域に移動しますか?私が物事を見ていない限り、これは記憶上書きのように見えます。 – PaulMcKenzie
@PaulMcKenzie:あなたは私が編集していないものを実際に見ています。 – Unimportant