私のプロジェクトのプロセスを作成しようとしています。私は親から子プロセスへの引数を渡しますが、その引数は時間の経過とともに変更されるので、最初に子に1を渡して試してみたかったのです。文字列形式は、この "childname.exe c"のようにする必要があります.cはランダムな文字を表します(この場合は試行の場合は1です)。cの文字列配列から最初の文字列を取得
私はchildname配列を作成しました。私が望むのは、新しい文字列をchildname文字列に連結し、別の文字列配列(lpCommandLine変数)にコピーするだけでした。下のコードをデバッグしたとき、child_name [0](0に等しいとき)は「ChildProj1.exe」を返すと予想していましたが、「C」のみを返します。私が逃した点や、それをCで行う方法はありますか?
は、ここで私は、デバッガをgetinもののイメージがあります:here stored values of in variables
#define NO_OF_PROCESS 3
char *child_names[]= {"ChildProj1.exe", "ChildProj2.exe", "ChildProj3.exe" };
char* lpCommandLine[NO_OF_PROCESS];
int i;
for (i = 0; i < NO_OF_PROCESS; i++)
lpCommandLine[i] = (char *)malloc(sizeof(char) * 16);
for (i = 0; i < NO_OF_PROCESS; i++)
{
strcat_s(child_names[i], strlen(child_names[i]), " 1");
strcpy_s(lpCommandLine[i], strlen(lpCommandLine[i]), child_names[i]);
}
です。バッファに文字を追加しようとしたためにstrcat_sが失敗しました - srcat_sの戻り値を確認してください – pm100
@ Y.E.S。配列lpCommandLineに何を取得しようとしているのかは不明です。その結果の内容を表示します。 –
lpCommandLineに格納します。child_names配列0番目の文字列は "ChildProj1.exe"で、lpCommandLine [0]は "ChildProj1.exe 1"になります。だからあなたはChildProj1.exe + 3(空白と1と\ 0)を意味する16文字の各child_namesインデックスのためにメモリを割り当てることを提案します –