-1
int RandomSource_next(int bits, double* seed) {
    *seed = (((long long) *seed * 0x5DEECE66DLL) + 0xBLL) & ((1LL << 48) - 1);
    return (int)((signed long long) *seed >> (48 - bits));
}

我认为这与地址有关。

4

1 回答 1

2

很可能您传递的地址不正确seed。也许您传递的不是地址而是值?

以下应该工作

double seed = 0;

RandomSource_next(48, &seed);

以下应该崩溃

RandomSource_next(48, 0);
于 2012-08-20T06:19:19.003 回答