Parfoit lorsque je crée des fonctions dans mes classes jarrive avec des problemes de logique qui pourait me couter des problèmes de perte de mémoire, comme par exemple :
Dans cette fonction je veux faire un traitement avec absolument une variable dynamique non-membre et, la fonction return 0 si il y a eu un echec..
il y a des variable membre dans la classe que j'utilise dans la fonction qui sont des entier suposon... int m_Var2, m_Var3, m_Var4;
Code :
- bool ClasseBidon::FonctionBidon()
- {
- BYTE* DynVar1;
- //je lui donne une grosseure pour faire le traitement...
- DynVar1 = new BYTE[1000000];
- // dans le traitement j'utilise des fonction qui me return 0 s'il y a eu des erreur...
- m_Var2 = Fct(DynVar1);
- if(!m_Var2) return 0; // Echec!
- //je continue le traitement...
- m_Var3 = Fct2(DynVar1);
- if(!m_Var3) return 0; // Echec!
- m_Var4 = m_Var2 + m_Var3; // Aucun rapport... :)
- // Ensuite jai fini mon traitement je ferme ma variable dynamique...
- delete[] DynVar1;
- return 1; // Succes!
- }
|
bon maintenant vous pouvez peut-être surment comprendre mon problème... si par exemple la fonction Fct2() retourne une erreur
et bien je termine automatiquement ma fonction mais le problème est que ma variable dynamique est encore ouverte...
Comment dois-je procédé pour regler ce probleme...
mettre sa?
if(!)
{
delete[] DynVar1;
return 0;
}
pour chaque fonction qui me retourne 0 s'il y a une erreur?... je crois pas que sa marche puisque dans la réalité des fois
j'ai beaucoup de fonction a prendre pour faire mon traitement et sa serai de la répétition de code... en-tk je peut
me tromper mais comment je fait ou comment procédé vous dans ce jenre de cas?