W funkcji swap przepisujesz aktualny napis do tablicy dwuelementowej algae. (Buffer overflow)
Dodatkowo nie zwalniasz pamięci którą alokujesz w pętli
Wywaliłbym też tego swapa.
#include <stdio.h> #include <stdlib.h> #include <string.h> void dynamics(char *input){ char *s; int k; int j; int i = 0; int a = 0; s = strdup(input); printf("0."); puts(s); for(k=0;k<10;k++){ char *p; a=0; j=0; for(i=0;*(s+i);i++) if(*(s+i)=='A') a++; p=calloc(strlen(s)+a,1); for(i=0;*(s+i);i++) { if(*(s+i)=='A'){ *(p+j++)='A'; *(p+j++)='B'; } if(*(s+i)=='B'){ *(p+j++)='A'; } } printf("%d.", k+1); puts(p); free(s); s = p; } free(s); } int main(){ char algae[] = "A"; dynamics(algae); return 0; }
93,742 zapytań
142,680 odpowiedzi
323,299 komentarzy
63,328 pasjonatów
Motyw:
Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡
Oto polecana książka warta uwagi.Pełną listę książek znajdziesz tutaj
Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.