看板 C_and_CPP 關於我們 聯絡資訊
我使用C 想把main的參數列串接起來 void main(int argc,char * argv[]) { for(i=1;i<arvc;i++) { strcat(argv[0],"p") strcat(argv[0],argv[i]) } } 以上執行後printf argv[0]預期出現 argv[0]pargv[1]pargv[2]pargv[3]... 但執行卻出現 argv[0]ppargv[2]pargv[3]..... 多了p卻少了argv[1]........... try了許久....不知道問題出在哪?? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.74.125.51 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1480931087.A.28F.html ※ 編輯: AlexKuo (203.74.125.51), 12/05/2016 17:46:08
Caesar08: argv[0]的size不夠 12/05 18:18
LPH66: argv[0] 的大小只保證裝得下傳進來的字串 12/05 18:51
LPH66: 它後面有沒有其他字串是依執行環境而定 12/05 18:51
LPH66: 這裡的狀況是恰巧它後面緊接 argv[1] 所以 argv[1] 被蓋掉 12/05 18:52
AlexKuo: 請問argv的size要如何加大,這不是main自動的參數嗎? 12/05 18:54
shadow0326: 另外準備空間去接吧 12/05 19:01
AlexKuo: 了解,謝謝大家 12/05 19:06
LPH66: 就因為是自動幫你準備的參數所以沒轍, 你只能自己另外準備 12/05 19:11
pttworld:   12/06 08:04