在C ++中,这是安全的吗?
int main() {
srand(time(0));
unsigned char arr[10];
for(int i=0; i <sizeof(arr); ++i)
arr[i] = (unsigned char)rand();
}
有没有更好的方法以独立于平台的方式随机填充字节数组?没错,是否有更好的方法在Windows上执行此操作? (我知道rand()不是一个非常好的PRNG,我只是以它为例)。
谢谢!
答案 0 :(得分:3)
使用boost.random怎么样?它使用的生成器可以传递给std::generate
来填充你的数组,它是平台独立的和只有标题的。我会给出一个代码示例,但目前没有可用的增强安装。
编辑:如上所述:在C ++ 0x(即将推出的标准)中,您可以使用tr1 :: random,这实际上只是升级库成为标准C ++库的一部分。