Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1293 connectés 

  FORUM HardWare.fr
  Programmation
  C

  pb avec librairie gmp

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb avec librairie gmp

n°1109611
xou31
Posté le 06-06-2005 à 13:36:33  profilanswer
 

nous avons un pb avec des fonctions de la librairie gmp
mpz_import et mpz_export pour le 2eme argument de ces fonctions
Nous devons convertir une chaine de caracteres en un entier  
 
pour plus dinfo sur ces fonctions :
http://www.swox.com/gmp/manual/Int [...] d%20Export
 
c'est assez urgent c pour un projet a rendre demain
 
merci bcp pour laide!!!!

mood
Publicité
Posté le 06-06-2005 à 13:36:33  profilanswer
 

n°1109622
Elmoricq
Modérateur
Posté le 06-06-2005 à 13:46:52  profilanswer
 

Ton problème c'est quoi exactement ?
Si c'est simplement la conversion d'une chaîne en entier, regarde du côté de strtol().
 

n°1109633
xou31
Posté le 06-06-2005 à 13:54:35  profilanswer
 

alors en fait c surtout pour le 2eme argument je sais pas comment l'ecrire
voila ce que j'ai
 
char* M;
 mpz_init (message_converted);
 mpz_import(message_converted,(size_t) M.length, 1, 1, 0, 0, M.c_str());
et apparemment le compilateur naime pa mon 2nd membre
 
pareil pour mpz_export
 
la je sais pa du tout koi mettre comme 2nd membre
j'ai essaye ca mais ca compile pa
 
 char* result = (char*)malloc(MM.length);
  string s(result);
  *mpz_export ((void*)result, MM.length(), 1, 1, 0, 0, z);
(sachant que MM ca doit etre la chaine qu'il me retourne et z c mon entier qu'il doit convertir
 
merci!!!

n°1109652
Elmoricq
Modérateur
Posté le 06-06-2005 à 14:02:34  profilanswer
 

Code :
  1. char* M;
  2. mpz_init (message_converted);
  3. mpz_import(message_converted,(size_t) M.length, 1, 1, 0, 0, M.c_str());


 
M étant un pointeur, il n'a pas de "méthode" associée.
M.length() et M.c_str() n'existent pas, et "char *" est un type de base (comme int, ou float, ou n'importe quel autre type de base), ce n'est pas une structure ni **gasp** un objet (pas d'objet en C). Donc pas de type "string", si tu veux utiliser une classe string, il faut faire du C++ (et là, pas de malloc(), mais des new/delete !)
 
Qui plus est, dans ton exemple M n'est pas alloué. Ton pointeur est indéfini, et le comportement de mpz_import le sera tout autant.
 
Donc :
 

Code :
  1. /* c'est a toi de determiner "taille".  
  2.    le +1 sert a stocker le caractere de fin de chaine '\0' */
  3. char* M = malloc((taille+1) * sizeof *M);
  4. if ( M == NULL )
  5. {
  6.    /* M n'est pas alloue, il faut gerer l'erreur */
  7. }
  8. else
  9. {
  10.    /* ici on est sur que M est correctement alloue */
  11.    /* <inserer du code ici qui initialise "M"> */
  12.    mpz_init (message_converted);
  13.    mpz_import(message_converted, strlen(M), 1, 1, 0, 0, M);
  14. }
  15. /* quand on a termine, il faut liberer la memoire allouee avec malloc() */
  16. free(M), M = NULL;


Message édité par Elmoricq le 06-06-2005 à 14:06:33
n°1110083
xou31
Posté le 06-06-2005 à 17:50:00  profilanswer
 

ok je v essayer ca
merci bcp!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  pb avec librairie gmp

 

Sujets relatifs
Présence ou non d'une librairie?librairie Case Based Reasoning
problème de librairie GD [C++] Librairie de math sous linux ?
Librairie graphiquelibrairie GD
Documentation de la librairie standard GNU C en françaisCreation d'une librairie C utilisable en Javascript
librairie libssh2.soProbleme de librairie windows/linux
Plus de sujets relatifs à : pb avec librairie gmp


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR