[问题] 有关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