Witam. Dopiero zacząłem się uczyć C++, więc wielu rzeczy jeszcze nie rozumiem. W moim kompilatorze program działa bez problemu, ale SPOJ go nie akceptuje. Pojawia mi się błąd wykonania (SIGSEGV). Nie bardzo wiem, o co chodzi. W którym miejscu zrobiłem błąd? Poniżej mój kod:
#include <iostream>
using namespace std;
void f(string a1, string b1);
int main()
{
int ile;
cin>>ile;
for(int i=0;i<ile;i++)
{
string a,b;
cin>>a>>b;
f(a,b);
}
return 0;
}
void f(string a1,string b1)
{
int dl_a=a1.length();
int dl_b=b1.length();
if(dl_a<dl_b)
{
int ii=0;
char wynik[dl_a*2];
for(int i=0;i<dl_a;i++)
{
wynik[ii]=a1[i];
wynik[ii+1]=b1[i];
ii=ii+2;
}
wynik[dl_a*2]='\0';
cout<<wynik<<endl;
}
else
{
int ii=0;
char wynik[dl_b*2];
for(int i=0;i<dl_b;i++)
{
wynik[ii]=a1[i];
wynik[ii+1]=b1[i];
ii=ii+2;
}
wynik[dl_b*2]='\0';
cout<<wynik<<endl;
}
}
Będę wdzięczny za każdą pomoc