Forums Rue-Montgallet.com
Rue-Montgallet.comRue-Hardware.comRue-Occasion.comRue-DVD.comRue-Jeuxvideo.comRue-AudioVideo.comRue-Telephone.comForums
S'inscrire | S'identifier |
| Recherche avancée | Aide
 
 

Il y a 64 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet :

C++ pb de surcharge d'operateur << et >>

 
n°10579
Papy Bross​ard
Profil : Jeune recrue
Posté le 03-11-2004 à 23:09:32  profilanswer
 

Voilà le code que j'ai. Ca passe à la compilation mais une fois la saisie effectuée, "segmentation fault"... Une idée pour m'aider ?
 
 
/**
 *Surcharge de l'operateur >>
 *On remplit une matrice qui a été allouée.
 *@param flux : reference constante sur un istream
 *@param m : reference sur une matrice
 *@return flux : une reference sur un istream
 */
istream& operator>>(istream &flux,Matrice &m){
   for(int i=0;i<m.ligne;i++)
      for(int j=0;j<m.col;j++)
  flux>>m[i][j];
 
   return flux;
}

n°10584
myst
nono powered ©
Profil : Vieux de la vieille
Posté le 04-11-2004 à 12:11:35  profilanswer
 

envoie le reste du code, declaration de matrice et tout, là ca me parait bon à premiere vue :spamafote:


---------------
Fondateur de la CuRseD TeAm
n°10587
Papy Bross​ard
Profil : Jeune recrue
Posté le 04-11-2004 à 17:13:14  profilanswer
 

Je ne pense que pas que ça le fasse de le balancer ici... Je peux t'envouyer les sources ? (si oui, tu me fils ton mail, merci !!)
 
Papy Brossard

n°10588
myst
nono powered ©
Profil : Vieux de la vieille
Posté le 04-11-2004 à 17:20:21  profilanswer
 

bah ca depend, si c'esrt pas enorme tu peux ici, notamment la declaration de la matrice
 
sinon si c'est plus gros jvais pas avoir le temps là tout d'suite :spamafote:


---------------
Fondateur de la CuRseD TeAm
n°10603
Papy Bross​ard
Profil : Jeune recrue
Posté le 07-11-2004 à 18:51:04  profilanswer
 

Une declaration de matrice (un des 4 constructeurs):  
Matrice::Matrice(int nblig,int nbcol){
ligne=nblig;
col=nbcol;
 
  matrice=new double*[ligne];
  matrice[0]=new double[ligne*col]; //Allocation du tableau complet
 
  for(int i=1;i<ligne;i++)
    matrice[i]=matrice[i-1]+col;
 
  memset(matrice[0],0,ligne*col*sizeof(double));
 
surcharge de <<  :  
ostream& operator<<(ostream &flux,Matrice &m){
 
   for(int i=0;i<m.ligne;i++){
      flux << " ";
      for(int j=0;j<m.col;j++)
  flux << m.matrice[i][j] << " | ";
      flux << endl;
   }
   flux << endl << endl;
   return flux;
}
 
Y'a plus de probleme de segmentation fault mais il se passe des choses "bizarres". J'ai surchargé l'operateur * et lorsque j'effectue le calcul, ça marche "bizarrement". Je peux vous envoyer un imprime ecran si vous voulez.  
 
Merci d'avance.


Message édité par Papy Brossard le 07-11-2004 à 18:53:13

Aller à :
Ajouter une réponse