【发布时间】:2013-01-17 23:06:16
【问题描述】:
为什么 Erlang 有一个 C NIF 替代 malloc、enif_alloc,而不是 calloc?从而强制在enif_alloc 之后使用memset() 进行数组访问。
【问题讨论】:
-
我不太了解 Erlang,但在 C 语言中
calloc()并不是那么有用。避免读取未编写的数组元素的编写良好的 C 代码可以使用malloc()而不是calloc()。并且calloc()不能保证将指向 null 或浮点对象的指针设置为 0.0(尽管在大多数系统上碰巧这样做)。 -
基思,您应该将其发布为答案。作为 cmets 的答案不是一个好主意,因为它违背了问答系统的目的。
-
所以你的说法既然写得好c代码本身就会设置数组元素,那么就不需要calloc了吗?
标签: c erlang erlang-nif