读取内存时出现随机错误
本文关键字:随机 错误 内存 读取 | 更新日期: 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
返回什么?一个积分内存地址还是地址上的值?既然我已经重读了你的问题,我不完全确定你在追求什么(但我会把这个放在这里以防万一(。