Некоторые ситуации, в которых целесообразно применять void-указатели в C++:
- Чтение и запись в файлы и на устройства. 1 В такие объекты можно писать данные любых типов. 1
- Работа с функциями, которые могут принимать данные разных типов. 1 Например, malloc или calloc, часть функций WinAPI и ODBC. 1
- Обработка разнотипных указателей. 3 Например, импорт функций из DLL или драйверов. 3 Вместо того чтобы импортировать каждую функцию по имени отдельным кодом, можно сделать массив имён и массив указателей (void**) на адреса функций и импортировать всё одним циклом. 3
- Низкоуровневые операции. 3 Например, выделение куска «сырой» памяти с помощью оператора new. 3 При этом инициализацией памяти оператор new не занимается, поэтому ему всё равно, какой тип создаваемого объекта. 3
Void-указатель — это обобщённый указатель, который может указывать на любой тип. 34