return 0; }Z tego powodu rezultatem próby wypisania w linijce 5 wartości wskazywanej przez wskaźnik void będzie poniższy błąd kompilatora:Compiler Error: 'void*' is not a pointer-to-object typePrzy wypisywaniu wartości wskazywanej przez wskaźnik void należy rzutować ją na odpowiedni typ#include <stdio.h> int main(){ int a = 8; void* ptr = &a;

printf("%d", *(int*)ptr); //Wskaźnik ptr jest rzutowany na wskaźnik typu int przy wypisywaniu return 0; }W tym przypadku ponieważ wskaźnik typu void jest rzutowany na wskaźnik typu int posiada on informację ile miejsca w pamięci powinna zająć wartość wskazywana.

Wskaźniki w Assembly x86 Wskaźniki w asemblerze działają podobnie. Aby przeprowadzić dereferencję należy najpierw zapisać adres w rejestrze:; intel mov eax, adres ; Zapisz adres do rejestru eax mov eax, dword ptr [eax] ; Zapisz do rejestru eax wartość 4 bajtową z adresu w eax

; at&t movl adres, %eax ; Zapisz adres do eax movl (%eax), eax ; Zapisz do eax wartość *(dword*)adresMożna też robić arytmetykę:; intel mov eax, dword ptr [eax+5+edx*4] ; eax <- *(dword*)((void*)(eax) + 5 + (void*)(edx)*4)

; at&t movl 5(%eax,%edx,4), %eax ;