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

string throwing segmentation error in c++

本文关键字:分段 错误 字符串 C++      更新时间:2023-10-16

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

   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[]。但这也给出了同样的错误。如何处理?

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

下一行

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

应该是

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