Due esempi: le funzioni malloc e free. malloc restituisce un void * perché ha allocato la memoria, ma non sa a cosa servirà; ci penserà il chiamante ad effettuare il cast al tipo di puntatore corretto. Stesso discorso per free: non è importante a che genere di dati punta il parametro passato, ma semplicemente l'indirizzo, visto che la funzione deve solo deallocare quel blocco di memoria.