gpt4 book ai didi

c++ - 我应该使用哪个 *_cast 将任意整数类型的指针转​​换为 char 指针?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:23:40 25 4
gpt4 key购买 nike

我需要用来自 /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?

最佳答案

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

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

关于c++ - 我应该使用哪个 *_cast 将任意整数类型的指针转​​换为 char 指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22315503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com