Пустой указатель представляет отсутствие типа данных и, следовательно, может использоваться для указания на данные любого типа. Однако, так как тип данных неизвестен, нет способа напрямую разыменовать указатель. Для этого необходимо заранее привести указатель на определенный тип данных.
Ситуации, когда указатель недействителен:
Иногда, чтобы заставить функцию принимать данные разных типов, например, int, char, double и т. д., можно использовать шаблон. (Хотя перегруженная функция - вариант, но наименее эффективный способ). Другой способ для этого - использовать указатель void.
void FunctionName (void * data, type param)
{
/ * на основе второго аргумента param разыменяем данные указателя так, чтобы
данные могут быть обработаны по желанию.
* /
}
Просто напоминание:
Пустой указатель и нулевой указатель должны различаться, поскольку они имеют разные цели использования и функциональности. Последний имеет тип указателя, но не указывает на какой-либо действительный адрес каких-либо данных.