固定结构数组内的另一个结构

本文关键字:结构 另一个 数组 | 更新日期: 2023-09-27 17:54:19

我需要一个structs数组(它们都是固定大小的非托管structs),但显然visual studio不喜欢我的代码。

基本上我需要一些像

fixed page_table tables[1024];在我的结构。

这是代码,使visual studio throw fit,是有任何方式我可以实现这一点(我需要它全部预初始化)

[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];
}

固定结构数组内的另一个结构

错误消息非常清楚。除了列出的固定缓冲区之外,不能使用其他类型。

错误信息甚至给出了可能的解决方案,要么使用允许的类型之一,要么不使用固定的缓冲区。

如果你真的需要你正在尝试使用的代码,那么你已经达到了根本不可能做任何你想做的事情的地步。