下图为C++中定义的结构体:
//Define Method
 typedef struct {
 int ints;
 int intarray[5];
 char chars;
 char chararray[5];
 double floats;
 double floatarray[5];
 int* intPoint;
 int* intPointarray[5];
 }Strusts;
下图为C#中定义的结构体:
        [StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 0)]
        public struct Strusts
        {
            public int ints;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
            public int[] intarray;
            public char chars;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)]
            public string chararray;
            public System.Double floats;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
            public System.Double[] floatarray;
            public IntPtr intPoint;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
            public IntPtr[] intPointarray;
        };
1、整形指针及整形指针数组,在C#里面能返回地址,但是每个指针指向的地址相差都是12,这样是不是有问题?
2、我想取地址里的数据,但是怎么都取不出来,我试过了Marshal.Copy()、IntPtr加地址偏移的方法、反正我知道的方法都试过了,取出来的数据都是不对的,整个过程没有报错。
3、希望各位老师能帮忙指点一下,非常感谢!我是初学者,基础知识不是很好,自己也买了一些书籍在看。