Witam. Mam napisać program, który każe użytkownikowi wpywać znaki, dopóki nie wpisze dwóch tych samych. Problem w tym, że tablica ma mieć na początek rozmiar 5 znaków, jeżeli użytkownik będzie wpisywał więcej znaków, mam zwiększyć rozmiar tablicy o 5. Funkcja, która jest za to odpowiedzialna, nie dziala jak powinna (gdy wypisuje elementy tablicy maksymalnie jest 8 znaków
Mój kod:
using namespace std;
char* resizeArray(char* old, int rozmiar){
char* nowa = new char[rozmiar+5];
for (int i = 0 ; i < rozmiar; i++){
nowa[i] = old[i];
}
delete[] old;
old = nowa;
return old;
}
int main(){
char znak;
char* tablica = new char[5];
char tmp = '\0';
for(int i = 0 ; ; i++){
cout << "Wpisz znak: ";
cin >> znak;
if (i > sizeof(tablica) / sizeof(tablica[1]) ){
tablica = resizeArray(tablica, sizeof(tablica) / sizeof(tablica[1]) );
}
if (znak == tmp){
break;
}
tablica[i] = znak;
tmp = znak;
}
for (int i = 0; i < sizeof(tablica) / sizeof(tablica[1]) ; i++){
cout << tablica[i];
}
}
Szukałem odpowiedzi ale nic nie znalazłem, stąd też moja prośba o pomoc.