私のコードでは、UInt64 値を計算してから、次のようにキャストしています。
return *(Cell*)packedUInt64;
セルは構造体です。Marshal.SizeOf(new Cell()) は 8 を出力するため、UInt64 と一致するはずですが、上記のキャストは AccessViolationException でクラッシュします。おそらく Marshal.StructureToPtr などのより安全な方法を試すことができますが、コードのどこにエラーがあるのだろうか? たぶん、アライメントの不一致の問題ですか?