с++ неопределенный указатель

Синтаксически тип void являемся фундаментальным типом. Однако, его можно использовать только как часть более сложного типа, так как объектов тина void не существует.

Этот тип используется либо для указания :

  1. на то, что функция не возвращает значения,
  2. в качестве базового типа для указателей на объекты неизвестного типа.

Например :

void f(); // функция/не возвращает значение 
void* pv; // указатель на объект неизвестного типа.

Но данных типа void самих по себе не существует.

Так неправильно:

void x; // ошибка: не существует объектов типа void 

О функциях,которые не возвращают значения - СИ++ :

При объявлении функции вы должны указать тип возвращаемого значения.
Логично предположить, что для указания того, что функция не возвращает значение, нуж-
но просто опустить тип. Это, однако, сделало бы синтаксис менее единообразным
и противоречило бы правилам языка С.
Как следствие, в качестве «псевдотипа возвращаемого результата» используется тип void, указывающий
на отсутствие возвращаемого значения.