Форум программистов, компьютерный форум CyberForum.ru

reinterpret_cast<...>(...) - C++

Восстановить пароль Регистрация
 
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.02.2012, 14:43     reinterpret_cast<...>(...) #1
Всем привет! Сразу к делу.

ВОПРОС:
Как преобразовать переменную типа float в указатель типа double;


КРАТКОЕ ОПИСАНИЕ ПРОБЛЕМЫ:

Проблема заключается в том что у меня есть функция которая принимает указатель на double. Но аргументы с которыми мне приходиться работать типа float. Так как мне преобразовать переменную типа float в указатель типа double.

МОЙ НЕ УДАЧНЫЙ ВАРИАНТпотому что в указателях double заместо нужного значения мусор :
C++
1
2
3
4
5
6
                        
//num_fir->fl; это поле класса типа float
float* one_f= &num_fir->fl;
float* two_f= &num_sec->fl;
double* one = reinterpret_cast<double*>(one_f);//преобразую числа
double* two =reinterpret_cast<double*>(two_f);//преобразую числа
Подскажите пожалуйста, зарание спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 14:43     reinterpret_cast<...>(...)
Посмотрите здесь:

reinterpret_cast C++
reinterpret_cast помогите разобраться C++
Reinterpret_cast C++
C++ Преобразование (reinterpret_cast)
Оператор reinterpret_cast C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
24.02.2012, 14:51     reinterpret_cast<...>(...) #2
попробуй так

C++
1
double * one = static_cast<double*>(malloc(one_f));
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.02.2012, 14:57  [ТС]     reinterpret_cast<...>(...) #3
Цитата Сообщение от renald Посмотреть сообщение
попробуй так
Код C++
1
double * one = static_cast<double*>(malloc(one_f));
Спосибо попробывал , но результат такойже. За место числового значения в указателе "мусор".
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
24.02.2012, 15:09     reinterpret_cast<...>(...) #4
Сорри, прошлый код вообще не правильный
Думаю можно так

C++
1
double one = static_cast<double>(*one_f);
villu
202 / 202 / 4
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
24.02.2012, 15:10     reinterpret_cast<...>(...) #5
и правильно, что мусор.
Нужно не указатели преобразовывать, а сами значения. Потому как размеры у float и double разные

C++
1
2
double one_d = static_cast<double>(num_fir->fl);
double two_d = static_cast<double>(num_sec->fl);
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
24.02.2012, 15:21  [ТС]     reinterpret_cast<...>(...) #6
Всем спасибо, урок усвоен
Yandex
Объявления
24.02.2012, 15:21     reinterpret_cast<...>(...)
Ответ Создать тему
Опции темы

Текущее время: 16:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru