Question: Intersecting Merge SortWie Debuggen eines Segmentation Fault in diesem Code?
Input--abc//first string def//second string Output-- adbecf Input 2-- abc defgh Output adbecfgh**
Ich bekomme Segmentierung Fehler in meinem Code und ich weiß nicht warum. Ich glaube nicht, dass mein Code auf einen ungültigen Zeiger zeigt. Wie kann ich diesen Code entfernen?
Hier ist meine Lösung Code in C
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>
char *mergeTwo(char *a,char *b)
{ char *c;int k=0,i=0;
while(1)
{
if(a[i]!='\0' && b[i]!='\0')
{
if(a[i]>=b[i])
{
c[k++]=b[i];
c[k++]=a[i];
}
else
{ c[k++]=a[i];
c[k++]=b[i];
}
}
else if(a[i]!='\0' && b[i]=='\0')
{
c[k++]=a[i];
}
else if(a[i]=='\0' && b[i]!='\0')
{
c[k++]=b[i];
}
else if(a[i]=='\0' && b[i]=='\0')
{
c[k]='\0';
break;
}i++;
}
return c;
}
int main() {
char str1[100],str2[100],*str3;
gets(str1);
gets(str2);
str3= mergeTwo(str1,str2);
puts(str3);
return 0;
}
Fehler:
Wo ordnen Sie den Speicher, c Punkte ?? – drescherjm
Zuerst sollten Sie 'str1' und' str2' initialisieren (oder mindestens NULL-terminieren)! –