c# - 在执行期间被覆盖的结构值
问题描述
我的结构定义如下:
[StructLayout(LayoutKind.Explicit, Size = 10)]
public struct AudioSampleInfo
{
[FieldOffset(0)]
public ushort AudioBitPerSample;
[FieldOffset(2)]
public ushort AudioNumChannels;
[FieldOffset(4)]
public ushort AudioType;
[FieldOffset(6)]
public uint AudioSampleRate;
}
但是,在执行期间,这些值似乎发生了变化。似乎内存中分配的字节数组似乎是重叠的。
在程序执行期间,我们将值设置为:
AudioSampleInfo audioInfo = new AudioSampleInfo();
audioInfo.AudioBitPerSample = 16;
audioInfo.AudioNumChannels = 1;
设置后AudioNumChannels
,值AudioBitsPerSample
变为 272。
我似乎找不到任何关于为什么会发生这种情况的问题。
任何的意见都将会有帮助 ?
解决方案
推荐阅读
- matlab - 退化矩阵和 Jordan 形式的广义特征值问题
- javascript - 我的 if 语句或参数不起作用
- api - 如何将安全组分配给人力资源对象的 Web 服务操作
- javascript - 在悬停时或使用 javaScript 更改 CSS 中的多个 SVG 路径
- netty - 检测 micronaut netty 中的非阻塞线程
- eclipse - 从 MagicDraw 中的图表生成表格
- javascript - Node 和 Express 中未处理的 promise 错误
- r - 删除 R 上的差异值测量中的重复项
- sql - SQL Server:加入两个不同的查询
- docker - 如何在 Apple 芯片上运行 camunda