我应该使用* _cast将任意整型指针强制转换为char指针?

时间:2014-03-11 02:49:05

标签: c++ pointers casting

我需要使用来自 / dev / urandom 的数据填充整数类型的变量(任意大小)。考虑到这一点,我有以下代码:

std::fstream fstr("/dev/urandom", std::fstream::in | std::fstream::binary);
fstr.read(reinterpret_cast<char*>(&randomseed), sizeof(randomseed));
fstr.close();

randomseed 是我需要填充随机数据的变量。)

这会做正确的事情(即无论库实现是否安全),还是应该使用其他* _cast?

1 个答案:

答案 0 :(得分:1)

这不安全。只保证char类型没有陷阱表示。

“正确”的解决方案是将/dev/urandom包装在C ++ <random>引擎中,然后使用std::uniform_int_distribution