在Erlang C NIF中分配内存

ujv3wf0j  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(260)

为什么要用

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

vkc1a9a2

vkc1a9a21#

enif_alloc_resource用于创建不再使用时由VM垃圾收集的资源。enif_alloc的工作原理与malloc类似,只是它使用Erlang VM特定实现而不是操作系统malloc。有关更多详细信息,请查看ErlNifResourceType的文档和使用它的函数。

相关问题