• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Gmp

  • Автор темы Автор темы NewStudent
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
N

NewStudent

Вечер добрый, уважаемые форумчане!

Подскажите, пожалуйста, как выделить память под массив типа 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)];
Поидее, при этом вопрос:
как тогда обращаться к элементам массива?
должен отпасть
 
Всё стало понятно, спасибо за помощь!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab