//***************************************************************************<br>using System;<br>using System.Collections.Generic;<br>using System.Text;<br>using System.Runtime.InteropServices;<br><br>namespace ConsoleApplication1<br>
{<br>    public unsafe struct SomeType<br>    {<br>        public int i1, i2, i3;<br><br>        //public fixed int vec[10]; <br>        public fixed long vec[10]; // got a SIGABRT<br>    }<br>    <br>    class Program<br>
    {<br><br>        static unsafe void Main( string[] args )<br>        {<br>            var c = new SomeType();<br>            var c2 = new SomeType();<br>            Console.WriteLine( &quot;sizeof={0}&quot;, Marshal.SizeOf( c));<br>
            c.i1 = c2.i1 = 10;<br>            c.i2 = c2.i2 = 8;<br>            c.i3 = c2.i3 = 1;<br>            c.vec[0] = c.vec[5] = c.vec[9] = c2.vec[0] = c2.vec[5] = c2.vec[9] = 123;<br>            Console.WriteLine( &quot;{0} {1} {2} {3} {4} {5} {6} {7}&quot;, c.i1, c.i2, c.i3, c.vec[0], c.vec[5], c.vec[9], c.vec[3], c.vec[7] );<br>
            Console.WriteLine( &quot;{0} {1} {2} {3} {4} {5} {6} {7}&quot;, c2.i1, c2.i2, c2.i3, c2.vec[0], c2.vec[5], c2.vec[9], c2.vec[3], c2.vec[7] );<br><br>            Console.ReadLine();<br>        }<br>    }<br>}<br>
//***************************************************************************<br>compile with unsafe context ON console app<br><br>this code is work incorrectly in MonoFramework 2.10.1.3 sizeof(c) == 24 (valid 52), and memory(c2) is rewritten from c<br>
in MonoFramework 2.10.2.5.4 (MDK) code with INT work correctly<br>BUT I&#39;ve got SIGABRT in runtime for LONG arrays (uncomment line in struct definition) <br>