2

为什么要使用

void *enif_alloc_resource(ErlNifResourceType* type, unsigned size)

void *enif_alloc(size_t size)

尝试从 Erlang C NIF 分配内存时?

参考并没有详细说明原因。

http://www.erlang.org/doc/man/erl_nif.html#enif_alloc

4

1 回答 1

4

enif_alloc_resource 用于创建资源,这些资源在不再使用时由 vm 垃圾收集。enif_alloc 就像 malloc 一样工作,只是使用 Erlang VM 特定的实现而不是 OS 的 malloc。查看 ErlNifResourceType 的文档以及使用它的函数以获取更多详细信息。

于 2013-01-20T15:20:44.197 回答