Wiem: char * to wskaźnik do char. i int * to wskaźnik do int.Czy rozmiar znaku * jest taki sam jak rozmiar int *?
Tak, chcę, aby potwierdzić następujące dwie rzeczy:
Więc teraz załóżmy, jestem na 32-bitowym komputerze, to znaczy adresy pamięci są 32 bitowe. Oznacza to, że rozmiar znaków char * i int * to 32 bity (4 bajty), prawda? Również rozmiar znaku * * jest taki sam jak rozmiar int *?
Załóżmy, że mam: int * ptr;
Zatem teraz robi * ((char * *) = 0x154 PTR) jest taka sama jak * ((int *) ptr) = 0x514 samo, prawda? (0x514 to po prostu dowolny losowy adres pamięci)
Platforma: Jestem na x86.
P.S .: Wiem, że odlewanie typu nie jest sugerowanym sposobem kodowania. Ale robię kodowanie Kernela, więc MUSZĘ wykonać casting!
Nawet jeśli standard tego nie mówi, wątpię, czy łatwo będzie znaleźć środowisko, w którym jest ono faktycznie inne. – Mysticial
Chociaż ich rozmiar jest taki sam w praktyce, ich wymagania dotyczące wyrównania nie są takie same. – DCoder
Jeśli robisz "kernel coding", to już ogranicza liczbę platform, na których można uruchomić kod. Sprawdź specyfikację systemu operacyjnego, co jest obsługiwane. –