我尝试以下操作时遇到段错误。我正在为程序动态地获取一些参数。我必须将它们连接成一个字符串并对其进行操作。我编写了以下代码,用于将所有参数连接成一个字符串。
int main(int argc, char** argv){
string input;
for(int i=1;i<=argc;i++)
{
input+= argv[i]+string(" ");
}
//code for operating on the string. code not yet written
return 0;
}
当争论更多时,我会得到段错误。如果参数是10-20,那么就没有段错误。但是当争论为100时,我会遇到段错误。我尝试在c ++中使用char []。但那也给出了同样的错误。怎么办呢?
答案 0 :(得分:3)
for
循环中的比较是错误的。您正在检查小于或等于而不是小于。
以下一行
for(int i=1;i <= argc;i++)
// ^^
应该是
for(int i=1;i < argc;i++)
// ^