Задачка элементарная - склеить 2 "бесконечные" строки в одну.
Реализую:
#include <stdio.h>
#include <stdlib.h>
int main(){
int l1=0,l2=0,ml1=5,ml2=5;
char c,*s1,*s2,*s;
printf("Vvedite s1: ");
s1=(char *)malloc(ml1);
while ((c=getchar())!=10){
l1++;
if (l1=ml1-1) {ml1+=10;s1=(char *)realloc(s1,ml1);}
*s1=c;
s1++;
}
*s2='\0';
printf("Vvedite s2: ");
s2=(char *)malloc(ml2);
while ((c=getchar())!=10){
l2++;
if (l2=ml2-1) {ml2+=10;s2=(char *)realloc(s2,ml1);}
*s2=c;
s2++;
}
*s2='\0';
s1-=l1;
s2-=l2;
for (int i=0;i<=l1;i++) {printf("%c",*s1);s1++;}
printf("\n");
for (int i=0;i<=l2;i++) {printf("%c",*s2);s2++;}
printf("\n");
s1-=l1;
s2-=l2;
s=(char *)malloc(l1+l2+3);
while (*s1) {*s=*s1;s++;s1++;}
while (*s2) {*s=*s2;s++;s2++;}
*s='\0';
s-=l1+l2;
for (int i=0;i<=l1+l2+1;i++) {printf("%c",*s);s++;}
printf("\n");
free(s1);
free(s2);
free(s);
return 0;
}
В консоли ошибка:
Vvedite s1: 4
Segmentation fault (core dumped)
Подскажите пожалуйста, что я делаю не так?