message d'erreur

message d'erreur - C++ - Programmation

Marsh Posté le 30-06-2005 à 14:41:01    

:hello: salut;
j'ai le programme suivant:

Code :
  1. #include "stdafx.h"
  2. #include "base.h"
  3. #include "Region.h"
  4. #include<cstdio>
  5. #include<cmath>
  6. #include <windows.h>
  7. #include<iostream>
  8. #include<ctime>
  9. #include<conio.h>
  10. #include<cstring>
  11. #include<stdlib.h>
  12. #include <fstream>
  13. using namespace std;
  14. static int compt=0;
  15. void main(int argc, char* argv[])
  16. {//pour ne pas saisir a chaque fois
  17. float xmi=3.4,xma=15.6,ymi=3.4,yma=15.6;
  18. int dim=8;//nbre de vecteur ds la base
  19. int nb;
  20. char fich[20];int **code;
  21. srand( (unsigned)time( NULL ) ); 
  22. cout<<"entre le nom du fichier: "<<endl;
  23.         cin>>fich;
  24.    
  25.         base bas(dim,xmi,xma,ymi,yma);
  26.         bas.afficher();
  27.   getch();
  28. }
  29. //==========================vecteur=============================
  30. vecteur::vecteur(vecteur &p){x=p.x;y=p.y;id=p.id;}
  31. vecteur::vecteur(float xmi,float xma,float ymi, float yma)
  32. {
  33. id=compt++;
  34. x=xmi+fmod((rand()),(xma-xmi));
  35. y=ymi+fmod((rand()),(yma-ymi));
  36. }
  37. void vecteur::afficher()
  38. {
  39. cout<<"id= "<<id<<endl;
  40. cout<<"xy: "<<x<<" "<<y<<endl;
  41. }
  42. vecteur::~vecteur(){}
  43. //==============================================================
  44. base::base(int dim,float a,float b,float c,float d)
  45. {
  46. xmin=a;
  47. xmax=b;
  48. ymin=c;   //construire dim vecteur dans la base
  49. ymax=d;
  50. Dimbase=dim;
  51. vect=new vecteur(a,b,c,d);
  52. for ( int i=0;i<Dimbase;i++)
  53. { vect[i]=vecteur(a,b,c,d);}
  54. }
  55. void base::afficher()
  56. {
  57. cout<<endl;
  58. cout<<"xmin= "<<xmin<<"  "<<"xmax=  "<<xmax<<endl;
  59. cout<<"ymin= "<<ymin<<"  "<<"ymax=  "<<ymax<<endl;
  60. for (int i=0;i<Dimbase;i++)
  61.  vect[i].afficher();
  62. }
  63. base::~base(){}


 :??: problème pour dim>=7 des erreurs
le message d'erreur est:
free_dbg(void * 0x004a1e20, int 1) line 1072 + 11 bytes
->0042BEAE   mov         dword ptr [ecx],eax
 :bounce: please help

Reply

Marsh Posté le 30-06-2005 à 14:41:01   

Reply

Marsh Posté le 30-06-2005 à 14:48:33    

oulah ... Je vois des new mais pas de delete ...
les tableaux de caractères, c'est du C, pas du C++, donc :
 
std::string fich;
cin >> fich;
 
à la limite. Je n'ai pas pris le temps de tout lire, mais ca a l'air mal parti ...
 
(Edit : invocation rituelle [:taz] )


Message édité par theshockwave le 30-06-2005 à 14:49:33
Reply

Marsh Posté le 30-06-2005 à 16:36:04    

l'utilisation de:
std::string fich;  
cin >> fich;  
génère des messages d'erreurs
 

Reply

Marsh Posté le 30-06-2005 à 16:38:50    

Code :
  1. #include <string>


:o

Reply

Marsh Posté le 30-06-2005 à 16:45:30    

le message d'erreur
error C2679: binary '>>' : no operator defined which takes a right-hand operand of type 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char>

Reply

Marsh Posté le 30-06-2005 à 17:08:09    

ca fonctionne parfaitement :o

Code :
  1. #include <iostream>
  2. #include <string>
  3. int main() {
  4. std::string input;
  5. std::cout << "entrez ce que vous voulez :" << std::endl;
  6. std::cin >> input;
  7. std::cout<< "entre : " << input << std::endl;
  8. return 0;
  9. }


 
Edit : Juste par curiosité : tu utilises quel compilateur ?


Message édité par theshockwave le 30-06-2005 à 17:09:11
Reply

Marsh Posté le 30-06-2005 à 17:14:22    

d_imane a écrit :


génère des messages d'erreurs


 
(je me demande toujours ce qui pousse les gens a poster qqchose d'aussi peu informatif. "ca marche pas [:zaib3k]" )

Reply

Marsh Posté le 30-06-2005 à 17:19:19    

toujours des problèmes au niveau de l'allocation de la mémoire

Code :
  1. include "stdafx.h"
  2. #include "base.h"
  3. #include<cmath>
  4. #include<cstdio>
  5. #include<iostream>
  6. #include<ctime>
  7. #include<conio.h>
  8. #include<string>
  9. #include<stdlib.h>
  10. using namespace std;
  11. static int compt=0;
  12. void main(int argc, char* argv[])
  13. {//pour ne pas saisir a chaque fois
  14. float xmi=3.4,xma=15.6,ymi=3.4,yma=15.6;
  15. int dim=5;//nbre de vecteur ds la base
  16. int nb;
  17. std::string fich;
  18. srand( (unsigned)time( NULL ) );
  19. base bas(dim,xmi,xma,ymi,yma);
  20. vecteur::vecteur(vecteur &p){x=p.x;y=p.y;id=p.id;}
  21. vecteur::vecteur(float xmi,float xma,float ymi, float yma)
  22. {
  23. id=compt++;
  24. x=xmi+fmod((rand()),(xma-xmi));
  25. y=ymi+fmod((rand()),(yma-ymi));
  26. }
  27. base::base(int dim,float a,float b,float c,float d)
  28. {
  29. xmin=a;
  30. xmax=b;
  31. ymin=c;   //construire dim vecteur dans la base
  32. ymax=d;
  33. Dimbase=dim;
  34. vect=new vecteur(a,b,c,d);
  35. for ( int i=0;i<Dimbase;i++)
  36. { vect[i]=vecteur(a,b,c,d);}
  37. }

Reply

Marsh Posté le 30-06-2005 à 17:20:32    

bordelique ce code, tu veux pas le remettre a l'endroit ?

Reply

Marsh Posté le 30-06-2005 à 17:22:00    

oui c bon ca marche pour le  
std::string fich;  
cin >> fich;  
je travaille avec la console de vc++
le problème que j'ai c'est au niveau de l'allocation je pense!!!

Reply

Marsh Posté le 30-06-2005 à 17:22:00   

Reply

Marsh Posté le 30-06-2005 à 17:22:34    

pas mal, le main qui englobe les définitions de fonction ...

Reply

Marsh Posté le 30-06-2005 à 17:30:22    

j'ai toujours le message
_free_dbg(void * 0x004a1e20, int 1) line 1027 + 26 bytes
->0042B9A7   mov         edx,dword ptr [ecx*4+48A97Ch]

Reply

Marsh Posté le 30-06-2005 à 17:33:53    

oui, c'est sur que c'est pas trop pratique de débugger quand on utilise le compilo en lignes de commandes ... Mais fais déjà une réorganisation de ton code, tu y verras plus clair (et nous aussi [:petrus75] )

Reply

Sujets relatifs:

Leave a Replay

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