2013-12-12 6 views
0

Как я могу переинтерпретировать преобразование из double в char * (мне нужно, чтобы он хранил данные double в файле в байтах). Ниже приведен код, и я не знаю, почему он не работает:reinterpret_cast double to char *

#include <iostream> 
int main(int argc, char **argv) 
{ 
    const double tmpDouble = 1234.; 
    char *tmpChar = reinterpret_cast<char*>(tmpDouble); 
    return 0; 
} 
+0

Вопрос должен быть «Как хранить« двойные »как двоичные данные?», Но в то же время для того, чтобы прокрасть его там. :) –

+1

Попробуйте указать адрес переменной tmpDouble ... '& tmpDouble' указывает на ваши байты. – nio

+1

@chris Как это 'unsigned char *'? – 0x499602D2

ответ

4

Если то, что ты там работал, он, вероятно, будет не то, что вы хотите - значение указателя будет просто 1234 - эффективно указывая на тот адрес, который может содержать что угодно (не то, что он доступен).

Если вы просто хотите иметь double в двоичном формате, вы могли бы сделать

const byte* pDouble = reinterpret_cast<const byte*>(&tmpDouble); 
//          | 
//        note the address here 

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

+0

@ DyP пропустил это, thx. –