Gestion d'objets

Gestion d'objets - C++ - Programmation

Marsh Posté le 27-09-2018 à 21:26:37    

Bonsoir, j'aurai deux questions a vous poser, concernant tous les deux les objets créer a partir d'une classe.
 
Le contexte :
 
Je suis entrain de faire un jeu en C++ et avec la sfml (librairie pour le graphique,audio,internet,etc).
Je vais vous dire se que je voudrai effectué et se que j'ai réaliser pour l'instant,
donc j'ai un objet menu qui est lancer dans le main ensuite dans se menu je choisi si je joue au solo ou au multi,
par rapport au choix il créer objet un objet de solo ou multi
ensuite dans le solo par exemple quand j’appuie sur Echap sa affiche un choix d’éléments :
Retour - Menu - bureau
se que j'ai fais c'est j'ai mis dans destructeur (<- déjà sa je ne sais pas si c'est une bonne chose  :whistle: ), si une variable int  
vaut == 0 alors n'affiche plus le menu;
vaut == 1 alors recréer un objet menu;
vaut == 2 alors quitte;
 
jusque la tous fonctionne sauf que quand je fais tous une fois ( c'est a dire du main - > menu -> solo -> menu)
ensuite dans le menu ou il faut quitter le menu sa crash avec l'erreur (Process returned -1073741571 (0xC00000FD)   execution time : 17.016 s)
(de se que j'ai lu c'est un problème de mémoire mais quoi exactement je ne sais pas  :??: )
 

Code :
  1. int main {
  2.    menu objetMenu;
  3.    ///dans le menu si je clique sur a alors créer multi : multi multi("parametres" )
  4.    ///si clique sur entrer alors créer solo : solo solo("parametres" );
  5. }


 

Code :
  1. menu::~menu()
  2. {
  3.     delete[] this->textMenu;
  4.     delete[] this->rectangle;
  5.     delete[] this->rond;
  6.     cout << "\ndestructeur menu";
  7.     if(this->valeurChoix==1)
  8.         solo soloMode(id,ENligne,caseSauvegarde,LectureNomMap(caseMap));
  9.     else if(this->valeurChoix==2)
  10.         multi multiMode(id,ENligne,caseSauvegarde);
  11. }


 

Code :
  1. solo::~solo()
  2. {
  3.     cout << "destructeur de solo" << endl;
  4.     delete pointInt0,pointInt1,pointInt2,pointInt3,pointInt4;
  5.     delete[] s_textJeu;
  6.     delete[] s_textCharg;
  7.     delete s_tex_aide;
  8.     delete s_rectangle_aide;
  9.     if(nb_c[0]==2){
  10.         delete nb_c;
  11.         menu new_menu;
  12.     }
  13. }


 
Voila, j’espère que vous arrivez a comprendre le problème, si vous avez une autre façon de créer un objet après avoir détruit celui actuel je suis preneur aussi, merci a vous.  :pt1cable:

Reply

Marsh Posté le 27-09-2018 à 21:26:37   

Reply

Marsh Posté le 30-09-2018 à 23:12:28    

Bon enfaite, j'ai régler mon problème, je peut switch de mon jeu au menu a l'infini maintenant, j'avais oublié une désalocation de mémoire importante qui peser entre 15 et 30 mo ( c'est ma map que j'allouer sans désallouer ),
je n'ai plus qua régler quelques autres fuites, bon merci quand même à bientôt.

Reply

Marsh Posté le 02-10-2018 à 13:54:37    

Ils sortent d'où pointInt0,pointInt1,pointInt2,pointInt3,pointInt4 ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

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