簡體   English   中英

我應該使用哪個* _cast將任意整數類型的指針轉​​換為char指針?

[英]Which *_cast should I use to cast an arbitrary integer-type pointer to a char pointer?

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM