读取内存时出现随机错误

本文关键字:随机 错误 内存 读取 | 更新日期: 2023-09-27 18:01:10

我正在制作一个涉及内存读取的程序,有时在尝试读取内存时会出现问题。调试器告诉我错误在IF条件下,所以我认为我的问题是内存获取的随机值(可能是带有字母的值,由于我试图读取整数,它崩溃了?(

if (Convert.ToInt32(mem3.ReadPointer(address3)) >= 1 && Convert.ToInt32(mem3.ReadPointer(address3)) <= 100)
    label5.Text = "LVL " + mem3.ReadPointer(address3).ToString();

我的问题是,如果值超出范围,是否有跳过代码的方法(在本例中为if(?

读取内存时出现随机错误

我建议使用TryParse。。如果这确实是你的问题(不过,玩随机记忆……如果没有更多的上下文,很难判断问题是什么(:

int val;
if (int.TryParse(mem3.ReadPointer(address3), out val)) {
    // all good, continue using val
    if (val >= 1 && val <= 100) // ...
}
else {
    // failed conversion
}

如果你在64位机器上运行。。您可能希望将指针值存储在long而不是int中。。。这样它就不会溢出。

编辑:

ReadPointer返回什么?一个积分内存地址还是地址上的值?既然我已经重读了你的问题,我不完全确定你在追求什么(但我会把这个放在这里以防万一(。