Почему бы вам не объявить a
как char*
вместо этого, например так:
//int *a = new int[100];
char *a = new char[100];
iFile.read(a, 100 );
Не требуется кастинг.
РЕДАКТИРОВАТЬ:
Хорошо, я прочитал ваш комментарий и закомментированную строку в вашем посте.В этом случае:
iFile.read(reinterpret_cast<char*>(a), sizeof(int)*100);
должно быть достаточно.
Однако я бы лично выбрал приведение в стиле C:
iFile.read((char*)a, sizeof(int)*100);
Это потому, что я не вижулюбая опасность здесь.Все выглядит хорошо, даже с использованием C-Style!
Лучший, но менее утомительный состав
Определите этот шаблон функции:
template<class To, class From>
To any_cast(From v)
{
return static_cast<To>(static_cast<void*>(v));
}
Затем используйте его:
//`From` type will be inferred from the function argument. :-)
iFile.read(any_cast<char*>(a), sizeof(int)*100);
Выглядит хорошо?
Думаю, это any_cast
можно использовать для приведения любого типа к любому типу!