В моем коде я пытаюсь создать цикл, который работает, изменяя значение указателя и значение печати того же указателя. Этот код - мой метод для бесконечного списка.Указатель на указатель не работает
#include <iostream>
using namespace std;
class pacjent
{
public:
char nazwisko[20];
pacjent*nastepny;
pacjent();
~pacjent();
};
pacjent *POCZATEK = NULL, *KONIEC = NULL;
pacjent::pacjent() {
cout << "Podaj nazwisko: ";
cin >> nazwisko;
if (POCZATEK == NULL) {
POCZATEK = this;
KONIEC = this;
} else {
KONIEC->nastepny = this;
nastepny = NULL;
}
}
pacjent::~pacjent() {
POCZATEK = POCZATEK->nastepny;
}
pacjent* NOW = POCZATEK;
void drukuj() {
///////////////////////////////// LOOP MENTIONED
// while(NOW->nastepny!=NULL)
// {
cout << NOW->nazwisko << endl; //do not work
// NOW=NOW->nastepny;
// cout << POCZATEK->nazwisko << endl; // works fine
// }
} //////////////////////////////////
int main() {
char SELECTOR;
while (SELECTOR != 'q') {
cin >> SELECTOR;
switch (SELECTOR) {
case 'n':
KONIEC = new pacjent;
break;
case 'p':
delete POCZATEK;
break;
case 'd':
drukuj();
break;
default:
break;
}
}
return 0;
}
Функция drukuj()
не будет печатать содержание «NOW» (я получаю пустой экран) указатель, но с POCZATEK
работает отлично. Есть идеи?
Вы никогда не обновляете 'NOW' ... – Angew
' NOW' не является указателем на указатель. Я не вижу указателей на указатели где угодно. –
Как не получается это сделать - извините - ваш код мусор - получите некоторые книги! –