作者AlexKuo (修身養性中)
看板C_and_CPP
標題[問題] 有關strcat的問題
時間Mon Dec 5 17:44:45 2016
我使用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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1480931087.A.28F.html
※ 編輯: AlexKuo (203.74.125.51), 12/05/2016 17:46:08
1F:→ Caesar08: argv[0]的size不夠 12/05 18:18
2F:推 LPH66: argv[0] 的大小只保證裝得下傳進來的字串 12/05 18:51
3F:→ LPH66: 它後面有沒有其他字串是依執行環境而定 12/05 18:51
4F:→ LPH66: 這裡的狀況是恰巧它後面緊接 argv[1] 所以 argv[1] 被蓋掉 12/05 18:52
5F:→ AlexKuo: 請問argv的size要如何加大,這不是main自動的參數嗎? 12/05 18:54
6F:推 shadow0326: 另外準備空間去接吧 12/05 19:01
7F:→ AlexKuo: 了解,謝謝大家 12/05 19:06
8F:推 LPH66: 就因為是自動幫你準備的參數所以沒轍, 你只能自己另外準備 12/05 19:11
9F:推 pttworld: 12/06 08:04