-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 に答える