在我的代码中,我正在计算 UInt64 值,然后将其转换为:
return *(Cell*)packedUInt64;
单元格是一个结构。Marshal.SizeOf(new Cell()) 打印 8,因此它应该匹配 UInt64,但上面的转换会因 AccessViolationException 而崩溃。我可能可以尝试更安全的方法,例如 Marshal.StructureToPtr,但我仍然想知道我的代码中的错误在哪里?也许是对齐不匹配问题?
在我的代码中,我正在计算 UInt64 值,然后将其转换为:
return *(Cell*)packedUInt64;
单元格是一个结构。Marshal.SizeOf(new Cell()) 打印 8,因此它应该匹配 UInt64,但上面的转换会因 AccessViolationException 而崩溃。我可能可以尝试更安全的方法,例如 Marshal.StructureToPtr,但我仍然想知道我的代码中的错误在哪里?也许是对齐不匹配问题?