Я не мог найти ничего, что связано с этим вопросом. Предположим, у меня есть два массива mpfr::mpreal
, a
и b
, в куче, как new mpfr::mpreal[n]
. Я должен использовать массивы C-стиля из-за функции, которая вызывает и использует массивы. Я не могу изменить его, я пытался, но он дает неправильные результаты, плюс сбои, это довольно большая и сложная функция для моего уровня. Если массивы могут стать большими (размер и тип/точность), я бы хотел избежать цикла для копирования, и вместо этого я бы использовал memcpy()
. Что я должен использовать в качестве третьего аргумента?C++ MPFRC++ Как использовать memcpy() с mpfr :: mpreal?
Я пробовал sizeof(mpfr::mpreal)
, но он всегда дает 32
, независимо от того, что я использую в mpfr_set_default_prec()
. На домашней странице я видел, что могу использовать mpfr::machine_epsilon()
, чтобы лучше показать это, но как я могу использовать его в memcpy()
?
'Я хотел бы избежать цикла для копирования, и я бы хотел использовать memcpy() вместо'. Это не очень хорошая идея. mpfr использует большие целые числа для мантиссы и, вероятно, выделяет часть информации в куче. Такая информация не предназначена для совместного использования между различными «mpreal» - для избежания двойных бесплатных ошибок. – Franck
Я не знал, как они были обработаны под капотом, но это имеет большой смысл. –