我正在嘗試爲我的項目創建過程。我會通過從父母的子進程中獲得參數,並且參數會及時更改,所以我想先嚐試將1傳遞給子進程。字符串格式應該是這樣的「childname.exe c」,其中c表示隨機字符(在這種情況下,僅用於試用)。從字符串數組中獲取第一個字符串c
我創建了一個childname數組,並且我想要的是將新的字符串與childname字符串連接起來,並將其複製到另一個字符串數組(lpCommandLine變量)。當我調試下面的代碼時,我看到child_name [0](當我等於0時)只返回'C',但我期望它返回「ChildProj1.exe」。有沒有一點我錯過了或如何在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]);
}
你認爲在新的字符串「 1」將被存儲。 strcat_s失敗,因爲您嘗試向緩衝區添加字符 - 請檢查srcat_s的返回值 –
pm100
@ Y.E.S。目前還不清楚你將在數組lpCommandLine中獲得什麼。顯示其結果內容。 –
我希望它被存儲在lpCommandLine中。在child_names數組中,第0個字符串是「ChildProj1.exe」,我希望lpCommandLine [0]是「ChildProj1.exe 1」。那麼你是否建議爲16個字符的每個child_names索引分配內存,這意味着ChildProj1.exe + 3(對於空白和1和\ 0) –