Problème avec vc++ 6.0 et gmp.

Problème avec vc++ 6.0 et gmp. - C++ - Programmation

Marsh Posté le 31-07-2005 à 08:33:03    

Bonjour`.
 
Ne sachant pas comment utiliser gmp sous vc++ 6.0 j'ai pu trouver cette jolie source sur le site de cppfrance.com
 

Code :
  1. //=================================================================//
  2. // Fichier principal                                               //
  3. //=================================================================//
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include "include/gmp.h"  // Librairie mathématique
  7. //=================================================================//
  8. // Fonction principale du programme                                //
  9. //=================================================================//
  10. int main(int argc, char* argv[])
  11. {
  12. int    n;
  13. mpz_t  nbre;  // Définit un nombre
  14.      // mp = multiple precision
  15.      // z = entier en math
  16. // Affiche ce que l'on fait
  17. printf("Affichage d'un nombre sous la forme 2^n-1\n" );
  18. // Demande et récupère une valeur de n
  19. printf("Valeur de n = " );
  20. scanf("%d", &n);
  21. // Initialise le nbre de mersenne à 2
  22. mpz_init(nbre);     // Initialise la variable
  23. mpz_add_ui(nbre, nbre, 2);  // Place 2 dedans
  24. // Calcul 2^n-1
  25. mpz_pow_ui(nbre, nbre, n);  // Calcul 2^n
  26. mpz_sub_ui(nbre, nbre, 1);  // Enlève 1
  27. // Affiche le nombre
  28. gmp_printf("%Zd\n", nbre);
  29. system("pause" );
  30. return 0;
  31. }


 
Tout fonctionne #1.
 
Pour tester j'ai remplacer n par 256, car mon but final est de calculer 256^1048576 soit un chiffre de 1mb  
 
Mais il plante, il me fait une exception, si j'enlève gmp_printf("%Zd\n", nbre); il ne plante pas et si je remet une plus petite valeur comme 2 par exemple. Avec gmp_printf("%Zd\n", nbre); tout fonctionne #1.
 
Alors c'est moi qui ait mal inclus la dll et la .lib ou bien si c'est un bug de gmp ? j'utilise la version 4.1.2
 
J'ai tenté de faire un debug et d'après ce que j'ai vu il y aurait une stack overflow dans gmp.dll
 
Alors je ne sais pas comment régler ce problème  
 
Merci  :D


Message édité par NullDragon le 31-07-2005 à 17:46:23
Reply

Marsh Posté le 31-07-2005 à 08:33:03   

Reply

Marsh Posté le 31-07-2005 à 09:53:50    

balise [cpp ] stp :o

Reply

Marsh Posté le 31-07-2005 à 18:22:30    

L'erreur exacte que windows me donne c'est:
 
The exception unknown software exception (0xc00000fd) occured in the aplication at location 0x0042e957
 
Puis si je click sur Debug ça dit que c'est un stack overflow dans mon .exe

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed