[問題] 有關strcat的問題

作者: AlexKuo (修身養性中)   2016-12-05 17:44:45
我使用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了許久....不知道問題出在哪??
作者: Caesar08 (Caesar)   2016-12-05 18:18:00
argv[0]的size不夠
作者: LPH66 (-6.2598534e+18f)   2016-12-05 18:51:00
argv[0] 的大小只保證裝得下傳進來的字串它後面有沒有其他字串是依執行環境而定這裡的狀況是恰巧它後面緊接 argv[1] 所以 argv[1] 被蓋掉
作者: AlexKuo (修身養性中)   2016-12-05 18:54:00
請問argv的size要如何加大,這不是main自動的參數嗎?
作者: shadow0326 (非議)   2016-12-05 19:01:00
另外準備空間去接吧
作者: AlexKuo (修身養性中)   2016-12-05 19:06:00
了解,謝謝大家
作者: LPH66 (-6.2598534e+18f)   2016-12-05 19:11:00
就因為是自動幫你準備的參數所以沒轍, 你只能自己另外準備
作者: pttworld (批踢踢世界)   2016-12-06 08:04:00
 

Links booklink

Contact Us: admin [ a t ] ucptt.com