В моем коде я вычисляю значение UInt64, а затем приводю его так:
return *(Cell*)packedUInt64;
Ячейка - это структура. Marshal.SizeOf (new Cell ()) печатает 8, поэтому он должен соответствовать UInt64, но приведенный выше сбой с AccessViolationException. Я мог бы попробовать более безопасные методы, такие как Marshal.StructureToPtr, но мне все еще интересно, где ошибка в моем коде? Может быть проблема несовпадения выравнивания?