OpCodes.Localloc 字段

定义

从本地动态内存池分配特定数目的字节并将第一个分配的字节的地址(瞬态指针,* 类型)推送到计算堆栈上。

C#
public static readonly System.Reflection.Emit.OpCode Localloc;

字段值

注解

下表列出了指令的十六进制和 Microsoft 中间语言 (MSIL) 程序集格式,以及简短的参考摘要:

格式 程序集格式 说明
FE 0F localloc 从本地堆分配空间。

堆栈过渡行为(按顺序排列)是:

  1. 要分配的字节数将推送到堆栈上。

  2. 从堆栈中弹出的字节数;从本地堆分配对应于大小的内存量。

  3. 指向已分配内存的第一个字节的指针将推送到堆栈上。

指令 localloc 从本地动态内存池分配 size (类型 natural unsigned int) 字节,并返回 (暂时性指针、第一个分配字节的类型 *) 的地址。 仅当方法 true上的初始化标志为 时,返回的内存块才会初始化为 0。 当当前方法执行 时 Ret,本地内存池可供重复使用。

生成的地址是对齐的,以便可以使用指令 ((如 Stind_I4) )存储stind任何基元数据类型,并使用指令 ((如 Ldind_I4) )进行加载ldind

指令localloc不能出现在 、catchfinallyfault 块中filter

StackOverflowException 如果没有足够的内存来为请求提供服务,则引发 。

以下 Emit 方法重载可以使用 localloc 操作码:

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0