Mam problem ze zrozumieniem wskaźników. Proszę o wyrozumiałość.
Na początek powiedzmy, że chcę zadeklarować statyczną tablicę wskaźników i odwołać się do jej pól, robię tak:
int main()
{
int *tab[3];
cin >> *tab[1];
cout << *tab[1];
return 0;
}
Powyższy kod sie kompiluje i program dziala. Jeśli natomiast chcę się odwołać to elementu tablicy o 1 mniejszej od jej rozmiaru to program się zawiesza:
int main()
{
int *tab[3];
cin >> *tab[2];
cout << *tab[2];
return 0;
}
Teraz jeśli chcę takiej samej tablicy wskaźników przydzielić pamięć dynamicznie i odwołać się do jej elementów, robię tak:
int main()
{
int *tab = new int [3];
tab[1] = 1;
cout << tab[1];
return 0;
}
Czy w takim razie sposób deklaracji statyczny bądź dynamiczny determinuje sposób odwoływania się do jej elementów? Dla statycznego z operatorem wyłuskania, dla dynamicznego bez?
Jak chcę zadeklarować statycznie wskaźnik do tablicy wskaźników to robię tak: (?)
int **tab[3];
A dynamicznie tak:
int **tab = new int * [3];
Jak się odwołać do elementów tych tablic? Np mając wskaźnik do tablicy wskaźników i chcę pod pierwszy element tablicy wpisać konkretną wartość.