Witam
mam problem z kodem który jest czescia pewnej klasy. Domyślam sie ze powinienem w odpowiednich miejscach dodac delete[]... ale program wypisuje wieksze głupoty. Głównym zadaniem kodu jest wczytywanie imienia i nazwiska i zapisywanie danych do dopasowanych tablic, i problem polega na tym ze wyrazy do 7 znaków są normalnie wczytywane i wypisywane, od 8 do 12 tablica niezaleznie od wpisanego imienia ma dlugosc 12. wiecej niz 12 jest juz ok. Ktos moze wyjasnic co w tym programie sie dzieje?
Ew. czy jest jakis sposób by to działanie zrobic inaczej?
char *imie, *nazwisko, *imie2, *nazwisko2;
int i=0;
cout<<"Podaj imie ";
fflush(stdin);
imie=new char;
imie2=new char;
char znak=NULL;
for( i=0;znak!='\n';i++)
{
scanf("%c", &znak);
if(znak!='\n') //sprawdzenie czy uzytkownik skonczyl pisac
{
imie[i]=znak;
imie2=imie;
imie=new char [i+1];
imie=imie2;
imie2=new char [i+1];
}
}
cout<<imie; // wypisz imie
Imie(imie); //tablica imie zostaje przekazana do funkcji imie
char znak2=NULL;
fflush(stdin);
nazwisko=new char[1];
nazwisko2=new char[1];
cout<<"Podaj nazwisko ";
for( i=0; znak2!='\n' ;i++)
{
scanf("%c", &znak2);
if(znak2!='\n')
{
nazwisko[i]=znak2;
nazwisko2=nazwisko;
nazwisko=new char [i+2];
nazwisko=nazwisko2;
nazwisko2=new char [i+2];
}
}
cout<<nazwisko;
Nazwisko(nazwisko);