Witam.
W dużym skrócie chcę napisać program który porównuje dwa ciągi znaków (niezbyt istotne w jaki sposób), jednak by nie ograniczać za bardzo, chciałem by użytkownik mógł wklepać oba teksty sam (w kodzie oznaczone jako bas i pat), jednak po poprawnym (jak mi się wydaje) wczytaniu pierwszego ciągu znaków i po wpisaniu drugiego, po wduszeniu "entera" program się wysypuje mimo że drugi ciąg wczytuję podobnie jak pierwszy i mam poważne problemy ze znalezieniem przyczyny.
Będę wdzięczny za wszelkie sugestie :)
Kod:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char *bas,*pat,d;
int i,sizeBas,sizePat;
printf("Wpisz tekst bazowy, zakoncz go przyciskiem \"Enter\":\n");
i=0;
bas=(char*)malloc(sizeof(char));
while((d=getchar())!=10){
realloc(bas,(i+1)*(sizeof(char)));
bas[i++]=d;
}
sizeBas=i;
printf("Bas: %s\n",bas); ////////////////////////////////////////////////////////////////////
printf("Wpisz tekst wzorca, zakoncz go przyciskiem \"Enter\":\n");
i=0;
bas=(char*)malloc(sizeof(char));
while((d=getchar())!=10){
realloc(pat,(i+1)*(sizeof(char)));
pat[i++]=d;
}
sizePat=i;
printf("Pat: %s\n",pat); /////////////////////////////////////////////////////////////
free(pat);
free(bas);
system("PAUSE");
return 0;
}