作者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/cn.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