Tablica wskaźników na struktury.

0
#include <iostream>
#include <iomanip>

using namespace std;

struct StrCar
{
	char RegCode[10];
	int PhoneNo;
	char Colour[10];
	int Model;
};

int main(){
	StrCar **Car;                  //Pointer to pointer or type StrCar
	Car = new StrCar *[10];  //Declares array of pointers
	Car[0] = new StrCar;      //Initializes car[0] only

	cout<<"enter1:"<<endl;

	cin  >> Car[0]->RegCode;

	cout<<"you entered"<<endl;

	cout<<Car[0]->RegCode<<endl;

	system("pause");
	return 0;
}

Pomoże mi ktoś to zrozumieć?Zwykłe wskaźniki rozumiem ale jak już są podwójne to ciężej:
W mainie robie wskaźnik na wskaźnik typu starcar tak?I po co mi to?
Potem robie tak jakby zwykłą tablice dynamiczną tylko ze to jest tablica wkaźnikow no i niby rozumiem,że te dwie gwiazdki wczesniej są potrzebne po to żeby mieć dostęp nie tylko do adresów tych struktur,ale ich tak jakby samych tak?Bo potem jak robie:

car[0]->  

to ->

zastepuje dwie gwiazdki?Takie coś by dzialalo:
```cpp
 cin  >> **car[0].Regcode;

Wydaje mi sie ze prawie to rozumiem ale potrzebuje malego naprowadzenia...

0

I po co mi to?
Nie wiem. Takich rzeczy się unika.

Powiedzmy, że masz tablicę obiektów

StrCar tab[5];

Możesz mieć również wskaźnik, który wskazuje na tę tablicę

StrCar* wsk = tab;

Teraz masz tablicę wskaźników

StrCar* tab[5];

I możesz mieć wskaźnik, który wskazuje na tę tablicę

StrCar** wsk = tab;

Zamiast statycznej tablicy możesz wskazać na dynamiczną "tablicę"

StrCar** wsk = new StrCar*[5];
->

zastepuje dwie gwiazdki?
Nie, -> zawsze zastępuje (*)., czyli

Car[0]->RegCode

to inaczej

(*Car[0]).RegCode

Zauważ, że Car[0] ma typ StrCar* (jedna gwiazdka).

1 użytkowników online, w tym zalogowanych: 0, gości: 1