libmpdec mpd_qncopy выделение памяти - PullRequest
0 голосов
/ 18 декабря 2018

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

mpd_t *mpd_qncopy(const mpd_t *a);

Возвращает указатель на свежую копию, NULL при ошибке.

Что означает "свежая копия" значит?Где он выделяет новый указатель без каких-либо mpd_context_t данных?

1 Ответ

0 голосов
/ 18 декабря 2018

«Свежая копия» означает выделение памяти и копирование десятичного объекта.Полная реализация :

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;
}

Непонятно, почему вы думаете, что необходимо предоставить объект mpd_context_t, поскольку над десятичной запятой не выполняется никаких операций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...