Mam takie pytanie: kompilujesz to u siebie na kompie i nie wywala ci się program? Przecież:
cin.getline(wyraz1,100);
przyjmuje dwa argumentu, pierwszy to wskaźnik do bufora pamięci, drugi, to rozmiar bufora a ty nie dość, że żeś żadnej pamięci nie zaalokował to jeszcze próbujesz ją zwolnić za pomocą delete.
Edit. Mój błąd, jednak alokujesz.
Edit: poprawiłem trochę twój kod, bo mi się program wywalał po wprowadzeniu danych co było spowodowane tym, że nadpisywałeś pamięć, której nie powinieneś był nadpipsywać (przekroczyłeś bufor pamieci dla wskTab w funkcji stringMerge:
#include <iostream>
#include <cstring>
using namespace std;
char* stringMerge(char *a, char *b)
{
int iloscZnakow1 = strlen(a);
int iloscZnakow2 = strlen(b);
int w;
if(iloscZnakow1 >= iloscZnakow2)
{
w = (iloscZnakow1*2);
}
else
{
w = (iloscZnakow2*2);
}
char *wskTab = new char [w+1];
int z=0;
int x=1;
for(int i=0;i<w/2;i++)
{
wskTab[z] = *a;
wskTab[x] = *b;
a++;
b++;
z+=2;
x+=2;
}
wskTab[w] = '\0';
return wskTab;
}
int main()
{
int t;
char wyraz1[100];
char wyraz2[100];
cin>>t;
cin.ignore();
while(t>0)
{
cin.getline(wyraz1,100);
cin.getline(wyraz2,100);
char *ps = stringMerge(wyraz1,wyraz2);
cout<<ps<<endl;
delete[] ps;
t--;
}
return 0;
}