PDA

Visualizza la versione completa : [C] Problema assegnazione mpz_t (GMP)


fbcyborg
16-11-2010, 12:21
Salve a tutti,

ho un problema con l'assegnazione di una variabile.
Da una parte ho la seguente struct:

typedef struct
{
mpz_t m;
} paillier_plaintext_t;
Dall'altra invece (e prendo dal file /usr/include/gmp.h):

typedef struct
{
int _mp_alloc; /* Number of *limbs* allocated and pointed
to by the _mp_d field. */
int _mp_size; /* abs(_mp_size) is the number of limbs the
last field points to. If _mp_size is
negative this is a negative number. */
mp_limb_t *_mp_d; /* Pointer to the limbs. */
} __mpz_struct;
e

typedef __mpz_struct mpz_t[1];

Premesso che quest'ultimo typedef mi crea non poca confusione, dovrei assegnare una variabile di tipo mpz_t al campo m della prima struct che ho scritto.

Prima ho dichiarato la variabile mpz_t integ;
Poi ho inizializzato la variabile, come dice qui (http://gmplib.org/manual-4.3.2/Simultaneous-Integer-Init-_0026-Assign.html#Simultaneous-Integer-Init-_0026-Assign).

Dopopodiché ho dichiarato la seguente:

paillier_plaintext_t *plaintext;
per poi cercare di fare l'assegnazione che dicevo prima, ovvero:

plain->m = integ;

Il problema è che in fase di compilazione mi dice:
error: incompatible types when assigning to type 'mpz_t' from type 'struct __mpz_struct *'

Non riesco proprio a venirne fuori. Ne ho provate di tutti i tipi. Qualcuno può aiutarmi?

Loading