Контроль преобразования типов указателей
В " классическом" Си при выполнении присваивания, передаче фактических параметров и результата функции происходит автоматическое преобразование указателей к базовым типам данных (int,unsigned ) и наоборот, а также преобразование одного типа указателя к другому. В Си++ такие " вольности" исключены, программист должен сам выполнить явное преобразование. Например, при использовании функции распределения динамической памяти, имеющей прототип
extern void* malloc(int n);
dat *p;
p = (dat*) malloc (10*sizeof(dat)); // преобразование void* в dat*
Естественно, что это преобразование типов фиктивное в том смысле, что оно не меняет значения самого указателя и не связано с выполнением каких-либо действий, а только меняет "точку зрения" транслятора на память под указателем.