ça ne répond complètement pas à ta question, car le travail n'est pas fait automatiquement par le compilo, mais c'est pas hors sujet:
voici quasiment le meme programme en C (peut-etre que ça marche en ocaml) qui désalloue correctement les variables d_init quand y'en a plus besoin:
{
{variables_globales_d_init qui font 50 Mo ;
static variables_pour_la_suite qui font 50 Mo ;
mon code d'init qui utilise les variables d'init ;
}
mon code pour la suite qui utilise plus les variables d'init ;
}
-------------------------------
voici encore une autre version, car
le plus sûr et le plus simple est bien sûr de le réordonner un peu:
-------------------------------------
{variables_pour_la_suite qui font 50 Mo ;
{variables_globales_d_init qui font 50 Mo ;
mon code d'init qui utilise les variables d'init ;
}
mon code pour la suite qui utilise plus les variables d'init ;
}
/* un autre avantage de cette manière de programmer avec des blocs supplémentaires, c'est que ça oblige ensuite le programmeur à éviter l'utilisation de variables globales qui génèrent des erreurs quand elles sont utilisées en même temps à des endroits très différents d'un programme */
# Re: L'allocation mémoire et les langages fonctionnels
Posté par free2.org . En réponse au journal L'allocation mémoire et les langages fonctionnels. Évalué à 1.
voici quasiment le meme programme en C (peut-etre que ça marche en ocaml) qui désalloue correctement les variables d_init quand y'en a plus besoin:
{
{variables_globales_d_init qui font 50 Mo ;
static variables_pour_la_suite qui font 50 Mo ;
mon code d'init qui utilise les variables d'init ;
}
mon code pour la suite qui utilise plus les variables d'init ;
}
-------------------------------
voici encore une autre version, car
le plus sûr et le plus simple est bien sûr de le réordonner un peu:
-------------------------------------
{variables_pour_la_suite qui font 50 Mo ;
{variables_globales_d_init qui font 50 Mo ;
mon code d'init qui utilise les variables d'init ;
}
mon code pour la suite qui utilise plus les variables d'init ;
}
/* un autre avantage de cette manière de programmer avec des blocs supplémentaires, c'est que ça oblige ensuite le programmeur à éviter l'utilisation de variables globales qui génèrent des erreurs quand elles sont utilisées en même temps à des endroits très différents d'un programme */