ОБСУЖДЕНИЕ

Gmp

4 ответов 4,1 тыс.
Статус
Закрыто для дальнейших ответов.
Автор темы
Вечер добрый, уважаемые форумчане!

Подскажите, пожалуйста, как выделить память под массив типа int, но его длина должна быть целым длинным числом типа mpz_t ?
Обычно выделяю так:
int *M;
M = new int *[N];
Но теперь n типа mpz_t. Что тогда делать?
 
наверно у mpz_t должен быть метод, возвращающий хранимое значение типа int, не?
 
Пишу вот так:
A = new mpz_t [mpz_get_ui(n)];

А потом в цикле пишу вот так:
for(mpz_set_ui(i, 0); mpz_cmp_ui(i, m+1)<0; mpz_add_ui(i, i, 1))
{
mpz_init(oldA[mpz_get_ui(i)]);

}

И у меня зацикливается, как тогда обращаться к элементам массива? Может он приводит к int, и портит само i?
 
не смогу подсказать, т.к. невкурсе что такое mpz_t.
Но,
как выделить память под массив типа int,
а вы выделяете под массив типа mpz_t:
Код:
A = new mpz_t [mpz_get_ui(n)];
попробуйте
Код:
A = new int [mpz_get_ui(n)];
Поидее, при этом вопрос:
как тогда обращаться к элементам массива?
должен отпасть
 
Всё стало понятно, спасибо за помощь!
 
Статус
Закрыто для дальнейших ответов.