Тип "указатель на неопределенный тип" (указатель на void) — обобщенный указательный тип. Значение указателя любого типа может быть преобразовано и присвоено указателю на тип void и наоборот без изменения его значения. К такому указателю нельзя применять операцию косвенного доступа. Для применения этой операции указатель на void надо привести к определеннму типу.
Пример 1
int main()
{
int a_function(void *);
char name[50] = "William";
int num = 95;
a_function(name);
/* передан указатель на char */
a_function(&num);
/* передан указатель на int */
}
int a_function(void *vptr)
{
...
}
В общем случае, отличном от рассмотренного примера, результат преобразования значений и присваивания указателей различных типов непредсказуем.