objective-c - 为什么这段代码可以在 Objective-C 中运行?我的访问权限为 BAD_ACCESS

标签 objective-c c

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

我认为这与地址有关。

最佳答案

很可能您将错误的地址作为种子传递。也许您传递的不是地址而是值?

以下应该有效

double seed = 0;

RandomSource_next(48, &seed);

以下内容应该崩溃

RandomSource_next(48, 0);

关于objective-c - 为什么这段代码可以在 Objective-C 中运行?我的访问权限为 BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032963/

相关文章:

ios - UINavigationController 剪辑 subview

objective-c - 在iPhone的 objective-c 中导入VCard

ios - 如何从 ImageView 上的不可见按钮获得突出显示效果

ios - 如何在 iOS Objective C 中更改日期选择器 View 和选择器 View 的字体大小

c - 如何编写rt-linux的内核模式?

javascript - 通过 JSON 检索数字并存储在变量中

objective-c - dispatch_after() 的奇怪行为

c - 如何在 C 中计算立方英尺并像我用英寸那样将其读给用户

c - 在 while 循环中替换字符流中的下一个字符

c - 在C中添加两个字符串