Dlaczego tu występuje błąd kompilacji ?
#include <iostream>
using namespace std;
class nazwa
{
public:
int *zmienna;
};
int main()
{
nazwa *wskaznik,tab[20][20];
wskaznik = & tab[0][0];
*wskaznik.zmienna = 20;
}
Dlaczego tu występuje błąd kompilacji ?
#include <iostream>
using namespace std;
class nazwa
{
public:
int *zmienna;
};
int main()
{
nazwa *wskaznik,tab[20][20];
wskaznik = & tab[0][0];
*wskaznik.zmienna = 20;
}
Bo nie znasz priorytetu operatorów - kropka ma wyższy priorytet niż gwiazdka, więc musiałbyś mieć
(*wskaznik).zmienna
albo
wskaznik->zmienna
Poza tym próbujesz przypisać inta do wskaźnika, to też nieładnie...
A co jest nieładnego w przypisywaniu wskaźnika do int ?
Przypisałeś do wskaźnika ADRES o wartości 20, a nie adres ZMIENNEJ przechowującej 20. Odwołując się do tego wskaźnika spróbujesz odwołać się do miejsca w pamięci które jest pod adresem 20 co zapewne spowoduje segfault ;]
*wskaznik->zmienna = 20;