Brakuje mi tu coś oczywistego, ale pod uwagę następujące,Konwersja int int *, a następnie z powrotem do int
int k = 10;
int *p = &k;
int i = (int)p;
powyżej produkuje,
warning: cast from pointer to integer of different size
i następne
int k = 10;
int *p = &k;
int i = p;
powoduje,
warning: initialization makes integer from pointer without a cast
trochę googlowania prowadzić mnie,
Converting a pointer into an integer
która doradza przy użyciu uintptr_t,
int k = 10;
int *p = &k;
int i = (uintptr_t)p;
powyżej działa bez błędów żadnych ostrzeżeń. Moje pytanie brzmi: int jest int, a p jest wskaźnikiem int wskazującym k, dlaczego dostaję błąd dereferencji p?
Jaka jest wartość "i"? –
Nie dereferencji 'p' w dowolnym miejscu w żadnym z przykładów. Czy możesz wyjaśnić swoje pytanie? – nmichaels