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

  FORUM HardWare.fr
  Programmation
  C++

  Expression: BLOC_TYPE_IS_VALIDE????

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Expression: BLOC_TYPE_IS_VALIDE????

n°265220
peak
Posté le 09-12-2002 à 12:01:00  profilanswer
 

j'ai un projet à remettre pour 16H et j'ai une de ces fucking erreur à l'execution ke je sais pas du tout d'où elle vient??? :fou:  
 
si kelk'un peu m'aider ce s'rai trop cool
http://www.imchat.be/test.gif
 
(compile avec VC++ 6.0 (j'utilise fstream.h; je sais pas si ça à kelke chose à voir) )

mood
Publicité
Posté le 09-12-2002 à 12:01:00  profilanswer
 

n°265223
antp
Super Administrateur
Champion des excuses bidons
Posté le 09-12-2002 à 12:03:09  profilanswer
 

je crois que ton screenshot est bien placé pour le concours du screenshot le plus dégueux de l'année. C'était tout juste, il restait à peine trois semaines pour 2002.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°265224
peak
Posté le 09-12-2002 à 12:03:29  profilanswer
 

:ouch:  (vive les picts de kalité :ange: )

n°265226
peak
Posté le 09-12-2002 à 12:04:02  profilanswer
 

lol, c'est ke je suis à la bourre....

n°265228
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-12-2002 à 12:04:18  profilanswer
 

Comment veux tu qu'on t'aide si tu postes pas ton code ? :sarcastic:


---------------
J'ai un string dans l'array (Paris Hilton)
n°265235
peak
Posté le 09-12-2002 à 12:11:55  profilanswer
 

ben me disait ke c'tai p'têtre une erreur tipike...?
 
(le prob c'est ke ce'st pas mega commenté)
 

Code :
  1. typedef unsigned short Piece;
  2. #include<fstream.h>
  3. #include<iostream.h>
  4. unsigned Load_next_unsigned(ifstream& file);
  5. //-----------------------------------------------------------------Graphe<Couloir>-------------------------------------------------
  6. template <class Couloir>
  7. class Graphe {
  8.    Piece N_Piece;
  9.    unsigned N_Couloir;
  10.    unsigned N_Escalier;
  11.    Piece *Escalier;
  12.    Couloir **M;
  13. public:
  14.    Graphe (ifstream&);
  15.    ~Graphe ();
  16.    Piece NB_PIECES () const { return N_Piece; }
  17.    unsigned NB_COULOIRS () const { return N_Couloir; } //unisgned != Piece  (NB_COULOIRS <= NB_PIECE^2)
  18.    Piece NB_ESCALIERS () const { return N_Escalier; }
  19.  
  20.    void Ins_Couloir (Piece s, Piece t, Couloir val = 1) { if(s<t) M[s][t] = val; else if(t>s && t<N_Piece) M[t][s]=val;}
  21.    void Ins_Escalier (Piece s, Piece t) {Escalier[s]=t;}
  22.    void Sup_Couloir (Piece s, Piece t) { M[s][t] = 0; }
  23.  
  24.    Piece Voisin_1er (Piece) const;
  25.    Piece Voisin_Svt (Piece, Piece) const;
  26.    bool Est_Piece (Piece s) const { return s < N_Piece; }
  27.    bool  Est_Couloir (Piece s, Piece t) { return ((s<t) ? M[s][t] : (t>s && t<N_Piece) ? M[t][s] : false;) }
  28.    Couloir POID (Piece s, Piece t) { return ((s<t) ? M[s][t] : (t>s && t<N_Piece) ? M[t][s]); }
  29.    Piece ESACLIER (Piece s) { return Escalier[s]; }   
  30.  
  31. };
  32. template <class Couloir>
  33. Graphe<Couloir>::Graphe (ifstream& file) : N_Piece(Load_next_unsigned(file))/*3*/, N_Couloir(Load_next_unsigned(file))/*4*/, N_Escalier(Load_next_unsigned(file))/*5*/, M(new Couloir*[N_Piece]), Escalier(new Piece[N_Piece]) {
  34.    for (Piece s=0; s<N_Piece-1; ++s) {
  35.       M[s] = new Couloir[s+1];
  36.       for (Piece t=0; t<s+1; ++t) M[s][t] = 0;
  37.  
  38.    }
  39.    for (Piece i=0; i<N_Piece; ++i) Escalier[i]=0;
  40. }
  41. template <class Couloir>
  42. Graphe<Couloir>::~Graphe () {
  43.    for (Piece s=0; s<N_Piece; ++s) delete[] M[s];
  44.    delete[] M;
  45.    delete[] Escalier;
  46. }
  47. template <class Couloir>
  48. Piece Graphe<Couloir>::Voisin_1er (Piece s) const {
  49.    Piece t = 0;
  50.    for ( ; t<s && !M[s][t]; ++t);
  51.    if(t=>s){
  52.    if(t==s) t++;
  53.    for(;t<N_Piece && !M[t][s]; ++t);
  54. }
  55.    return t;
  56. }
  57. template <class Couloir>
  58. Piece Graphe<Couloir>::Voisin_Svt (Piece s, Piece t) const {
  59.    for (++t ; t<s && !M[s][t]; ++t);
  60.    if(t=>s){
  61.    if(t==s) t++;
  62.    for(; t<N_Piece && !M[t][s]; ++t);
  63.    }
  64.    return t;
  65. }
  66. //I
  67. template <class Couloir>
  68. class Etage: public Graphe<Couloir> {
  69. Piece JBgirl;
  70. unsigned *difficulte;
  71. unsigned Pieces_Distrib;
  72. public:
  73. Etage (ifstream&, unsigned, bool);
  74.    ~Etage () { delete[] difficulte; };
  75.    unsigned NB_PIECES_DISTRIB() {return Pieces_Distrib;}
  76.  
  77.    unsigned DIFFICULTE  (Piece s) const { return difficulte[s]; }
  78.    Piece JBGIRL (Piece s) const { return JBgirl; }
  79.  
  80. };
  81. template<class Couloir>
  82. Etage<Couloir>::Etage (ifstream& file, unsigned n, bool Last_Graphe): Graphe<Couloir>(file), JBgirl(Load_next_unsigned(file)-1/*6*/), Pieces_Distrib(n), difficulte(new unsigned[NB_PIECES()]){
  83. cout<<endl<<"NB_PIECES() "<<NB_PIECES()<<endl;            //***Test
  84. for(unsigned i=0; i<NB_PIECES(); i++) difficulte[i]=Load_next_unsigned(file)/*6+N_Piece*/;
  85. cout<<endl<<"NB_COULOIRS() "<<NB_COULOIRS()<<endl;           //***Test
  86. for(unsigned j=0; j<NB_COULOIRS(); j++){
  87.  unsigned a,b,c;
  88.  a=Load_next_unsigned(file);/*6+N_Piece+3*N_Couloirs-2*/
  89.  b=Load_next_unsigned(file);/*6+N_Piece+3*N_Couloirs-1*/
  90.  c=Load_next_unsigned(file);/*6+N_Piece+3*N_Couloirs*/
  91.  Ins_Couloir (a-(1+Pieces_Distrib),b-(1+Pieces_Distrib),c-(1+Pieces_Distrib));
  92. }
  93. cout<<endl<<"NB_ESCALIERS()= "<<NB_ESCALIERS()<<endl;          //***Test
  94. if(!Last_Graphe){
  95.  for(unsigned k=0; k<NB_ESCALIERS(); ++k){
  96.   unsigned a,b;
  97.   a=Load_next_unsigned(file);/*6+N_Piece+3*N_Couloirs+2*N_Escalier-1*/
  98.   b=Load_next_unsigned(file);/*6+N_Piece+3*N_Couloirs+2*N_Escalier*/
  99.   Ins_Escalier(a-(1+Pieces_Distrib),b-(1+Pieces_Distrib+NB_PIECES()));
  100.  }
  101. }
  102. else{
  103.  for(unsigned k=0; k<NB_ESCALIERS(); ++k){
  104.   unsigned a=Load_next_unsigned(file);/*6+N_Piece+3*N_Couloirs+2*N_Escalier-1*/
  105.   Ins_Escalier(a-(1+Pieces_Distrib), 1);   //1==sentinelle
  106.  }    
  107. }        
  108.  
  109. }
  110. //-----------------------------------------------------------------Prison<Couloir>-------------------------------------------------
  111. template <class Couloir>  
  112. class Prison{
  113. unsigned N_Graphe;
  114. unsigned N_TOTAL_Piece;
  115. Piece First;
  116. Etage<Couloir>** V;
  117. public:
  118. Prison(ifstream& file): N_Graphe (Load_next_unsigned(file)/*1*/), V(new Etage<Couloir>* [N_Graphe]) {
  119.  First=Load_next_unsigned(file/*2*/);
  120.  --First;
  121.  for(unsigned i=0; i<N_Graphe; i++){
  122.   V[i]=new Etage<Couloir> (file, (i?(V[i-1]->NB_PIECES_DISTRIB()+V[i-1]->NB_PIECES()) :0), (i==N_Graphe-1));
  123.  }
  124. }  
  125. ~Prison() { for(unsigned i=0; i<N_Graphe; i++) delete[] V[i]; delete[] V;}
  126. };
  127. //---------------------------------------------------------------------------------------------------------------------------
  128. unsigned c=0;               //***Test
  129. unsigned Load_next_unsigned(ifstream& file){
  130. if(!file.eof()){                  
  131.  unsigned res;
  132.  file>>res;
  133.  cout<<++c<<"-"<<res<<endl;          //***Test
  134.  return res;
  135. }
  136. cerr<<"eof"<<endl;         //on est jamais trop prudent
  137. return 0;
  138. }
  139. int main(char** argv, int argc)
  140. {
  141. char* inputfile_name = "exempleJames.txt";   //char* inputfile_name = argv[0];
  142. ifstream file (inputfile_name);    
  143. if (!file) {
  144.          cerr << "erreur ouverture en lecture : "<< inputfile_name << endl ;
  145. }
  146.  
  147. Prison<unsigned short> JB0075 (file);
  148. file.close();
  149. int p;
  150. cin>>p;
  151. return 1;
  152. }

n°265236
peak
Posté le 09-12-2002 à 12:12:44  profilanswer
 

en fait le prob est à la fermeture de mon main()
 
exemplejames.txt:
3
1
4
3
2
2
50
100
25
10
1 2 5
2 3 10
2 4 9
3 9
4 7
5
4
2
8
40
80
40
50
30
7 8 8
8 9 5
5 8 6
6 8 9
5 10
6 11
3
3
1
11
15
20
30
10 11 12
10 12 2
11 12 15
12


Message édité par peak le 09-12-2002 à 12:17:04
n°265295
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 09-12-2002 à 13:20:00  profilanswer
 

ben t'as juste une putain d'assertion qui merde c'est tout. tu sais lire?


---------------
du bon usage de rand [C] / [C++]
n°265313
peak
Posté le 09-12-2002 à 13:37:20  profilanswer
 

Vive la convivialité!!!
Si ça te fait chier de répondre aux kestions personne te force!!
(ce style de réponses je m'en passerai!!)
 
je cherchai juste à avoir des renseignements sur  
"BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
et sur le style de couilles ki peuvent causer un problème d'assertion...

n°265317
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 09-12-2002 à 13:40:53  profilanswer
 

ben tu vas dans le fichier indiqué à la ligne donné et tu réfléchis comment ca se fait que l'assertion echoue (en l'occurence que truc->chose soit egale à 0)
 
les assert, c'est bete et mechant, rien a dire de plus dessus. c'est de la programmation dégueulasse qui ne doit etre utiliser qu'en phase dev, apres le code doit etre blindé et tous les assert dégagés


---------------
du bon usage de rand [C] / [C++]
mood
Publicité
Posté le 09-12-2002 à 13:40:53  profilanswer
 

n°265322
peak
Posté le 09-12-2002 à 13:45:31  profilanswer
 

ok,  
je prefer ça! :)

n°265339
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-12-2002 à 14:04:24  profilanswer
 

Taz@PPC a écrit :

ben tu vas dans le fichier indiqué à la ligne donné et tu réfléchis comment ca se fait que l'assertion echoue (en l'occurence que truc->chose soit egale à 0)


mais là en l'occurence, il se trouve que l'assertion est dans un fichier source qui ne lui appartient pas (surement un projet MFC, qui sont gavées d'ASSERT et autres ASSERT_VALID() )
 
hélas, la seule solution est effectivement de regarder la cause qui fait que l'assertion échoue, et sur un fichier qui ne t'appartient pas, c'est une merde sans nom...


---------------
J'ai un string dans l'array (Paris Hilton)
n°265343
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 09-12-2002 à 14:06:43  profilanswer
 

:fou: j'y peux rien si les mecs de gros$oft utilsie meme pas le mode release de leur compilo buggé


---------------
du bon usage de rand [C] / [C++]
n°265352
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-12-2002 à 14:14:39  profilanswer
 

m'engueule po, j'y suis pour rien moi [:serial coder]


---------------
J'ai un string dans l'array (Paris Hilton)
n°265353
Carbon_14
Posté le 09-12-2002 à 14:15:16  profilanswer
 

Ca doit être pour terminer le debuggage auquel les acheteurs de leurs outils participent. Les remarques sont sagement exploitées (test en vrai grandeur) et permet de préparer la mouture de la prochaine version qui corrige les défauts de la précédente (ou prépérer un ServicePack).
?

n°265428
peak
Posté le 09-12-2002 à 15:00:10  profilanswer
 

bon ben, je me resigne... avec un peu de bol ils le verront pas  :whistle:  
 
 
 

n°265453
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 09-12-2002 à 15:08:20  profilanswer
 

carbon_14 a écrit :

Ca doit être pour terminer le debuggage auquel les acheteurs de leurs outils participent. Les remarques sont sagement exploitées (test en vrai grandeur) et permet de préparer la mouture de la prochaine version qui corrige les défauts de la précédente (ou prépérer un ServicePack).
?

nan je crois po  :non:


---------------
du bon usage de rand [C] / [C++]
n°265499
Carbon_14
Posté le 09-12-2002 à 15:31:59  profilanswer
 

C'était ma rubrique langue de vipère. :ange:

n°265547
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 09-12-2002 à 16:27:06  profilanswer
 

peak a écrit :

bon ben, je me resigne... avec un peu de bol ils le verront pas  :whistle:  
 
 
 


:heink:
je veux pas te faire peur, mais une assertion qui échoue en mode debug conduit le plus souvent à une segmentation fault ou à une lecture/écriture dans une zone mémoire interdite en mode release !
et là, pas bon du tout !!! je serais toi, je me démerderais à corriger ça !!


---------------
J'ai un string dans l'array (Paris Hilton)
n°266179
Musaran
Cerveaulté
Posté le 10-12-2002 à 02:23:16  profilanswer
 

Ça veut dire que tu passe à une fonction système une zone mémoire corrompue.
Il n'y a pas de doute, ton programme écrases, mélange, ou n'alloue pas la mémoire.
 
1) Clique Retry
2) Active menu "View/Debug Windows/Call Stack"
3) Double cliques dans cette fenêtre la plus haute fonction appartenant à ton application.
 
Tu sais maintenant depuis où se fait un appel corrompu.
Reste à placer des points d'arrêts, assertions, traces...
 
PS: Si tu programmes comme tu postes des images, j'ai peur.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

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

  Expression: BLOC_TYPE_IS_VALIDE????

 

Sujets relatifs
Type de menu, HELP PLEASE.Type de base de données
Masque pattern/expression régulière exclusivement dans une balise HTML[FLASH] Récupérer une variable flash de type flash.swf?variable=xxxxxx
[PHP] transformer un texte du type [url] par <http://...[MySql] additionner des champs de type time
[MySQL] Difference entre le type "Timestamp" et "Datetime" ??Expression régulières
[mysql]requete de type arbre (rechercher n-peres]OOP : Créer objets de types distincts mais dérivés d'un type commun
Plus de sujets relatifs à : Expression: BLOC_TYPE_IS_VALIDE????


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