nee, das hilft leider nicht. Das scheint so mit den Variblen/Zeigern der gmp bibliothek nicht zu funktionieren.
#include <stdio.h>
#include <gmp.h>
#define BUFFER_SIZE 120
int main(void)
{
char buffer[BUFFER_SIZE];
int i;
int exp;
mpf_t x;
mpf_init2 (x, 384);
mp_exp_t *expptr;
expptr = &exp;
mpf_sqrt_ui(x,2);
mpf_get_str(buffer,expptr,10,100,x);
i=1;
while(buffer[i])
{
printf("%d",buffer[i]-48);
i++;
}
mpf_clear(x);
return 0;
}
gibt folgendes beim kompilieren:
Warnung: Zuweisung von inkompatiblem Zeigertyp
das betrifft die Zeile
expptr = &exp;
EDIT:
ich müsste expptr ja die Adresse einer Variablen vom typ "mp_exp_t" zuweisen, oder?
Aber ich weiss nicht wie das geht.
EDIT:
ich habs gefunden
The floating point functions accept and return exponents in the C type mp_exp_t. Currently this is usually a long, but on some systems it's an int for efficiency.
also gehts mit
mp_exp_t exp;
mp_exp_t *expptr;
expptr = &exp;
ich wusste nicht, dass mp_exp_t ein Typ in C ist.