Salve a tutti,
ho un problema con l'assegnazione di una variabile.
Da una parte ho la seguente struct:
Dall'altra invece (e prendo dal file /usr/include/gmp.h):codice:typedef struct { mpz_t m; } paillier_plaintext_t;
ecodice: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;
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.codice:typedef __mpz_struct mpz_t[1];
Prima ho dichiarato la variabile mpz_t integ;
Poi ho inizializzato la variabile, come dice qui.
Dopopodiché ho dichiarato la seguente:
per poi cercare di fare l'assegnazione che dicevo prima, ovvero:codice:paillier_plaintext_t *plaintext;
Il problema è che in fase di compilazione mi dice:codice:plain->m = integ;
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?

Rispondi quotando