Передача void* параметра в функцию

Рейтинг: 1Ответов: 2Опубликовано: 08.06.2011

Имеется функция:

void MyFun(void *Array){...}   

Как определить какой тип данных получен, для последующего вычисления его размера (sizeof())

Ответы

▲ 8Принят

Угу.

void * - просто указатель на что-то. Непонятно что.

Число ли это, строка, массив, структура - компилятор знать не будет. Потому и применяют типы "указатель на что-то известное", если это надо.

Если же нужно в одну функцию передавать разные штуки (а надо ли так делать?), то нужно функцию как-то уведомлять, что же ей дали на переваривание.

▲ 2

Ни размер, ни тип вы не определите, только если это будет строка, а строка оканчивается нулем.