修复了另一个struct中的struct数组?

时间:2013-01-19 09:08:15

标签: c# .net structure

我需要一个structs数组(这些数据都是固定大小的非托管structs)但显然视觉工作室不喜欢我的代码。

基本上我需要一些东西像

在我的结构中

fixed page_table tables[1024];

这是使视觉工作室合适的代码,无论如何我能实现这一点(我需要它全部预先初始化)< / p>

[StructLayout(LayoutKind.Explicit, Pack = 1)]
public unsafe struct page_directory
{
    [FieldOffset(0)]
    public fixed page_table tables[1024];

    [FieldOffset(0x8000)]
    public fixed uint tablesPhysical[1024];

    [FieldOffset(0x9000)]
    public uint physicalAddr;
}

[StructLayout(LayoutKind.Explicit, Pack = 1)]
public unsafe struct page_table
{
    [FieldOffset(0)]
    public fixed page pages[1024];
}

1 个答案:

答案 0 :(得分:1)

错误信息非常清楚。您不能使用除固定缓冲区列出的任何其他类型。

错误消息甚至为您提供了可能的解决方案,要么使用其中一种允许的类型,要么不使用固定的缓冲区。

如果你真的需要你尝试使用的代码,那么你已经达到了无法做任何你想做的事情的程度。