c++ - 我的代码中的段错误(SIGSEGV)

标签 c++ segmentation-fault

我在 spoj 和其他网站中解决的许多问题都遇到了段错误(SIGSEGV)。我给出了问题陈述链接和代码。谁能告诉我我在下面犯的错误。 问题 : http://goo.gl/CVROl

提前致谢。

 #include<iostream>
 #include<cstdio>
 #include<cstring> 
 #include<cmath>

 using namespace std;

int main()
{
    char a;
    string final,dummy;
    int t,h,p,k,z;
    scanf("%d",&t);
    while(t)
    {
         cin>>a>>h>>p;
         final=a;
         for(int i=0;i<h;i++)
         {
              k=0;
              for(int j=0;final[j]!='\0';j++)
              {
                   if(final[j]=='a')
                   {
                        dummy[k]='a';
                        dummy[k+1]='b';
                        k+=2;
                   }
                   else
                   {
                        dummy[k]='b';
                        dummy[k+1]='a';
                        k+=2;
                   }
              }
              final=dummy;
          }
          printf("%c\n",final[p-1]);
          t--;
      }
      return 0;
  }

最佳答案

正如 sstn 所指出的,您没有为 dummy 分配内存。因为它是一个字符串,而且看起来您只想向它附加字符,您可以这样做:

for(int j=0;j < final.size();j++)
{
    if(final[j]=='a')
    {
        dummy.push_back('a');
        dummy.push_back('b');
    }
    else
    {
        dummy.push_back('b');
        dummy.push_back('a');

    }
}
final=dummy;

关于c++ - 我的代码中的段错误(SIGSEGV),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4984834/

相关文章:

c++ - C++中的双重排序

C++合并排序不工作并且崩溃

c++ - QtSerialPort:readAll 不产生所有数据,也没有新的 readyRead 信号

c++ - 'struct ListNode' 类型的空指针内的成员访问

在我的代码中找不到段错误

c++ - 动态矩阵和 C++ : Segmentation Fault

c++ - 这是组合 std::generate_n 和 std::back_inserter 的正确方法吗?

c++ - 大数组上的段错误

C - 访问哈希表中的结构成员时出现段错误(插入函数)

c++ - 用 Python+ctypes、segfault 包装 C++ 动态数组