c ++中的字符串抛出分段错误

时间:2013-12-24 07:17:47

标签: c++ string

我尝试以下操作时遇到段错误。我正在为程序动态地获取一些参数。我必须将它们连接成一个字符串并对其进行操作。我编写了以下代码,用于将所有参数连接成一个字符串。

   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 []。但那也给出了同样的错误。怎么办呢?

1 个答案:

答案 0 :(得分:3)

for循环中的比较是错误的。您正在检查小于或等于而不是小于。

以下一行

for(int i=1;i <= argc;i++)
//            ^^

应该是

for(int i=1;i < argc;i++)
//            ^