Question sur delete

Question sur delete - C++ - Programmation

Marsh Posté le 26-12-2005 à 03:46:43    

Salut,
 
   J'ai un pointeur tout bete et a un moment je fait un new dessus ...  
   Puis je fait des delete pour faire de nouveau des new, mais voila je me prend un seg fault in ze face.  
  En scrutant un peu et en virant les delete ca marche donc je pige pas trop ...
 
La declaration :

Code :
  1. /** ... */
  2. Sort<int> *sort;
  3. vector<int> *vect;
  4. /** Dans le constructeur je les initialise avec new ... */


 
La liberation avec le delete :

Code :
  1. void MainFrame::OnSortsSelection(wxCommandEvent &event)
  2. {         
  3.     if (! m_timer.IsRunning() ){
  4.         events.erase(events.begin(),events.end());                       
  5.         this->sort->removeObserver(this);
  6.         //delete this->sort;      ///////////////////////////// QUAND JE COMMENTE CETTE LIGNE CA PLANTE PLUS   
  7.         this->sort = new SelectionSort<int>(); /////////// JE REAFFECTE A NOUVEAU
  8.         this->sort->addObserver(this);
  9.     }
  10. }
  11. /** ... puis a un moment donne je fais appel a une methode de l'objet et c'est la que ca plante normalement */
  12. this->sort->sort(*vect); // sort veut un vector<int> &  et ni this->sort ni this->vect ne sont NULL


 
Deja suis a peu pres sur de devoir faire le delete (cad personne va le faire a ma place ... vu que j'ai fait un new)
donc je pige pas du tout le seg fault la  :heink:


Message édité par Chronoklazm le 26-12-2005 à 04:06:52

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 26-12-2005 à 03:46:43   

Reply

Marsh Posté le 26-12-2005 à 09:28:28    

corruption dans un coin. t'as qu'à pas faire de new c'est tout.

Reply

Sujets relatifs:

Leave a Replay

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