如何在我需要获取指针的结构中创建数组

本文关键字:结构 创建 数组 指针 获取 | 更新日期: 2023-09-27 18:33:28

我需要在结构内创建一个数组,以便连接到嵌入式设备。因此,我们使用指向结构及其内部字段的指针......我尝试了下面的代码,但我应该只创建 100 个整数并完成吗?

[StructLayout( LayoutKind.Sequential )]
public struct HRTF
{
    UInt32 PPP;
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 100)]
    UInt32[] taps;
    . . . 
}
. . . 
HRTF effects = new HRTF();
/* --- ERROR cannot get address of, Sizeof ect ..to unmanaged typE 'HRTF' */
int offset = ((int)&effects.taps - startOffset) / 4; 
int length = sizeof(HRTF) / 4;

如何在我需要获取指针的结构中创建数组

fixed (uint* pt = effects.taps)
{
    // pt is not pointer to taps
}
var bts = Marshal.SizeOf(effects); // bts has size of HRTF in bytes.

var bts = Marshal.SizeOf(typeof(HRTF));