// nie ok!! } Możliwa jest konwersja standardowa obiektu typu pochodnego na typ bazowy. Zarówno obiekt bazowy, jak i pochodny posiadają w swojej strukturze pole x. Problem może się pojawić podczas konwersji w drugą stronę: z typu bazowego na typ pochodny (w tym wypadku musi być ona jawna). Obiekt klasy bazowej nie posiada w swojej strukturze pola y (jest mniejszy z punktu widzenia rozmiaru) stąd też wskazanie w funkcji void fun2( Pochodna& ) obiekt.y = 5; będzie wskazywało poza obszar zajmowany przez obiekt klasy bazowej, co może naruszyć ochronę pamięci.

Pomimo tego czasem celowo rzutuje się w dół, lecz należy dbać o bezpieczeństwo takiego rzutowania.

Wskaźnik void Wskaźnik void(ang. Void pointer) to Wskaźnik bez określonego typu danych. Może przechowywać adres dowolnego typu i być rzutowany na dowolny typ.int a = 256; char b = 'c';

void* ptr = &a; //ptr przechowuje adres zmiennej a

ptr = &b; //ptr przechowuje adres zmiennej bWskaźnik void nie może być dereferencjonowany, ponieważ nie posiada informacji ile miejsca w pamięci powinna zajmować wartość danej zmiennej.#include <stdio.h> int main(){ int a = 8; void* ptr = &a; printf("%d", *ptr);