Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Преобразование типов->???

5.6K
28 апреля 2004 года
UserPro
15 / / 28.04.2004
Есть такая запись:

MyStruct *Str1=(MyStruct *) Handle

где:
MyStruct - Моя структура из каких-то полей
Str1 - Указатель на нее
Handle - Указатель на открытый файл

Интересует механизм заполнения Моей Структуры из Файла. Просто если в разных местах писать эту строку то получается разный результат... почему???
310
29 апреля 2004 года
fellow
853 / / 17.03.2003
Потому что преобразование типов работает не так, как Вы себе представляете.
Если Вы хотите заполнить структуру данными из файла, то сначала нужно выделить память под структурню переменную, затем для каждого члена структуры прочитать из файла соответствующее значение и занести в этот член.
Просто так взять и преобразовать указатель на один посторонний объект (Ваш открытый файл) в указатель на другой совершенно посторонний объект (Ваша структура) в общем случае не получится.
5.6K
29 апреля 2004 года
UserPro
15 / / 28.04.2004
Мне на самом деле трудно сформулировать свой вопрос, т.к. пользуюсь не своими библиотеками в которых заполняются структуры.
Вообщем первое поле Моей Структуры это указатель на открытый файл и когда я смотрю в Watch'е (приостанавливая выполнение программы) на содержимое этого указателя, то оно получается всегда разное (если в разных местах прописывать это преобразование типов) ... почему? (файл я не меняю)
3
29 апреля 2004 года
Green
4.8K / / 20.01.2000
Цитата:
Originally posted by UserPro
Мне на самом деле трудно сформулировать свой вопрос, т.к. пользуюсь не своими библиотеками в которых заполняются структуры.
Вообщем первое поле Моей Структуры это указатель на открытый файл и когда я смотрю в Watch'е (приостанавливая выполнение программы) на содержимое этого указателя, то оно получается всегда разное (если в разных местах прописывать это преобразование типов) ... почему? (файл я не меняю)



Вообще-то в C++ грамотнее пользоваться приведением в стиле C++, т.е. через xxxx_cast<>, в твоем случае это видимо reinterpret_cast<>.
Возможно, проблема в этом.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог