Witam! Uczę się dynamicznego zarządzania pamięcią w C, więc napisałem na razie prosty programik, wczytujący dowolna ilość znaków z konsoli. Wszystko działa niby poprawnie, ale po wypisaniu oczekiwanego wiersza, pojawia się jeszcze drugi z losowymi znakami. Dziękuję za pomoc.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int rozmiar = 4;
int zwiekszenie = 2;
int iloczyn = rozmiar;
int i=0;
printf("Podaj ciag znakow\n");
char *t = malloc(sizeof(char)*rozmiar);
for(i=0;i<=(iloczyn-1);i++)
{
t[i]=getc(stdin);
if(i==iloczyn-1 && t[i] != '\n')
{
iloczyn = rozmiar*zwiekszenie;
t = realloc(t,iloczyn*sizeof(char));
zwiekszenie = zwiekszenie * 2;
}
else if(t[i]=='\n')
{
t = realloc(t,(i+1)*sizeof(char));
break;
}
}
printf("%s",t);
free(t);
return 0;
}