Bonjour, cela fait de très nombreuses fois que je lis que lorsqu'il y a une erreur irrécupérable, il faut

1) faire remonter l'erreur au main()
2) libérer toute la mémoire allouée
3) quitter le main.

Ma question est : existe-t-il une manière propre pour libérer toute la mémoire et ce, à n'importe quel moment (enfin dès qu'il y a une erreur) ?

J'envisage de faire une structure du genre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
typedef struct
{
  field1 * f1;
   ...
  field50 * f50;
} Memory;
et dès que je crée une structure dans mon main, je immédiatement après

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Memory -> f48 = f48; /* copie de pointeur */
puis dès qu'il y a une erreur, faire "tout simplement" un DestroyMemory().

Est-ce une bonne idée de fonctionner ainsi ?