W języku C++ taka konstrukcja także jest dopuszczalna. Jednak taki sam rezultat da pozostawienie nawiasu pustego − w języku C oznaczałoby to, że funkcja przyjmuje nieokreśloną liczbę argumentów.

Definiowanie wskaźników do danych nieokreślonego typu int n = 10; void *p = &n; int *pn = (int *) p; printf("n = %d\n", *pn);

W przykładzie tym zdefiniowano wskaźnik p i przypisano mu adres zmiennej całkowitej n. Ponieważ kompilator nie ma żadnej informacji o typie danych wskazywanych przez p, nie wolno bezpośrednio wyłuskiwać danych wskazywanych przez p. Aby uzyskać dostęp do tych danych, należy jawnie wskazać ich typ:

Przykład zaawansowany (qsort) W standardowej bibliotece języka C występuje funkcja sortujaca qsort o następującym prototypie: void qsort (void *array, size_t count, size_t size, int (*compare_fun) (const void *a, const void *b))

Ponieważ funkcja ta nie musi zwracać wyniku, typem jej wartości jest void Ponieważ funkcji tej chcielibyśmy móc używać do sortowania tablic danych dowolnego, z góry nieznanego typu, dostęp do nich zapewniany jest przez wskaźnik array typu void*. Czwarty argument funkcji qsort sam jest funkcją i służy do ustalania kolejności sortowanych elementów.