Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
Спасибо...а подскажи 27.05.05 12:17 Число просмотров: 2079
Автор: hotice Статус: Незарегистрированный пользователь
|
Спасибо всё заработало, только вот этот & символ перед указанием элемента не нужен :)
Может ты знаешь как сделать функцию возвращающую переменную типа mpz_t.
Я делаю так:
void test(mpz_t result, mpz_t a);
a если вот так, то прога не работает
mpz_t test(mpz_t a);
//...
mpz_t res; mpz_init (res);
mpz_set (res, test(n));
|
<programming>
|
если кто работал с gmp-lib подскажите 26.05.05 21:32
Автор: hotice Статус: Незарегистрированный пользователь
|
Мне необходимо создать массив переменных типа mpz_t, но я не знаю как это сделать, и как дальше организовать с массивом работу. Может кто уже пробовал раскажите плз по подробнее. Мануал по использованию библиотеки порыл, но ничего толком не определил (примеров маловато), в исходниках искал тоже ни чего понят не смог. Зарание спасибо...:)
|
|
Ну так и работай 27.05.05 11:12
Автор: amirul <Serge> Статус: The Elderman
|
> Мне необходимо создать массив переменных типа mpz_t, но я > не знаю как это сделать, и как дальше организовать с > массивом работу. Может кто уже пробовал раскажите плз по > подробнее. Мануал по использованию библиотеки порыл, но > ничего толком не определил (примеров маловато), в > исходниках искал тоже ни чего понят не смог. Зарание > спасибо...:)
int i;
mpz_t array[1024];
for (i = 0; i < 1024; i++)
mpz_init(&array[i]);
// bla-bla-bla
for (i = 0; i < 1024; i++)
mpz_clear(&array[i]);
---
За работоспособность примера не ручаюсь - под рукой нет ни самого gmp ни доки по нему. Просто показал сам принцип. Выделяешь массив, инициализируешь все элементы в нем, после окончания работы - разрушаешь все элементы.
|
| |
Спасибо...а подскажи 27.05.05 12:17
Автор: hotice Статус: Незарегистрированный пользователь
|
Спасибо всё заработало, только вот этот & символ перед указанием элемента не нужен :)
Может ты знаешь как сделать функцию возвращающую переменную типа mpz_t.
Я делаю так:
void test(mpz_t result, mpz_t a);
a если вот так, то прога не работает
mpz_t test(mpz_t a);
//...
mpz_t res; mpz_init (res);
mpz_set (res, test(n));
|
| | |
Вообще то, mpz_t это структура вроде 27.05.05 13:31
Автор: amirul <Serge> Статус: The Elderman
|
Даже если ты вернешь и она скопируется, то есть высокая вероятность нарваться на двойную очистку
> void test(mpz_t result, mpz_t a);
Именно так насколько я помню реализованы все gmp-шные функции, возвращающие результат
> a если вот так, то прога не работает > > mpz_t test(mpz_t a); > //... > mpz_t res; mpz_init (res); > mpz_set (res, test(n));
Если уж так хочется иметь семантику возврата значения, то почему бы не воспользоваться gmp-шными же C++ обертками?
|
| | | |
Вообщем понятно, а как насчёт??? 27.05.05 14:11
Автор: hotice Статус: Незарегистрированный пользователь
|
если необходимо передать в функцию массив или наоборот вернуть его. А то что то у меня не получается.
|
|
Извиняюсь, что немножко не в тему. А без массива никак не обойтись? 27.05.05 09:27
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
|
| |
Оно то конечно можно, но если 27.05.05 09:59
Автор: hotice Статус: Незарегистрированный пользователь
|
потребуется расширение программы то ни как нельзя. Задача такая 3 одномерных массива - 1 делимые, 2 делители, 3 остатки от деления 1 на 2, в каждом массиве от 2 до n элементов, можно взять просто 15 переменных(то есть 3 массива по 5 элементов) и на этом закончить, но хотелось бы больше.
|
|
|