libmpdec mpd_qncopy内存分配

时间:2018-12-18 01:21:25

标签: c pointers

https://www.bytereef.org/mpdecimal/doc/libmpdec/assign-convert.html

mpd_t *mpd_qncopy(const mpd_t *a);
  

返回指向a的新副本的指针,如果失败,则为NULL。

“新副本” 是什么意思? 在没有提供任何mpd_context_t的情况下,它在哪里分配新的指针?

1 个答案:

答案 0 :(得分:1)

“新鲜复制”表示分配内存并复制十进制对象。 full implementation是:

invalidateCurrentSublistLineForSubrecordCache

目前尚不清楚为什么您认为需要提供mpd_t * mpd_qncopy(const mpd_t *a) { mpd_t *result; if ((result = mpd_qnew_size(a->len)) == NULL) { return NULL; } memcpy(result->data, a->data, a->len * (sizeof *result->data)); mpd_copy_flags(result, a); result->exp = a->exp; result->digits = a->digits; result->len = a->len; return result; } 对象,因为对小数点未执行任何操作。