Witam, mam następujące zadanie:
- Utworzenie tablicy słów na 1 słowo o długości mniejszej niż 50
- Wyświetlenie "Enter a word"
- Użytkownik wprowadza słowo
- Wstawienie słowa do tablicy
- Jeżeli wstawione słowo inne niż "quit" to:
- zwiększenie rozmiaru tablicy słów o 1
- ponowne wyświetlenie napisu, wprowadzenie słowa i tak dalej
- Wyświetlenie wszystkich wprowadzonych napisów
Wszystko za pomocą charów, a nie stringów. Mam coś takiego:
#include <iostream>
using namespace std;
int main()
{
char **tab;
char **tab2;
tab = new char*[1];
tab[0]= new char[50];
int i=0;
do
{
cout << "Enter a word: ";
cin >> tab[i];
cout << tab[i];
if (tab[i]!="quit")
{
i++;
tab2 = new char*[i+1];
for (int y=0;y<=i;y++)
tab2[i]=new char[50];
for (int x=0;x<i;x++)
tab2[x]=tab[x];
for (int h=0;h<i;h++)
delete []tab[h];
delete []tab;
tab=tab2;
}
} while (tab[i]!="quit");
for (int j=0;j<=i;j++)
cout << tab[j];
return 0;
}
No ale program nie działa. Jak to naprawić by działało? Uczyłem się, że zmienia się rozmiar dynamicznej tablicy poprzez utworzenie nowej, przekopiowanie starej do nowej, usunięcie starej, przypisanie wskaźnikowi starej tablicy wskaźnika nowej tablicy