gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:35:46 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com