Salut à tous.
Existe t il un moyen de supprimer une variable ?
(C'est juste une question que je me pose.)
Version imprimable
Salut à tous.
Existe t il un moyen de supprimer une variable ?
(C'est juste une question que je me pose.)
Bonjour,
Le C est un langage compilé : l'emplacement relatif des variables et leur durée de vie sont définis à la compilation. Il n'est donc pas possible de modifier cet état de fait à l'exécution mais, d'un autre côté, il ne s'agit pas non plus d'objets alloués comme avec un langage interprété. C'est juste de la place réservée pour contenir la donnée et pas un octet de plus. Le code généré est ensuite conçu pour aller directement taper à cette adresse.
Soit tu utilises des variables globales et il n'est donc pas possible de les libérer (ce qui est une bonne raison pour ne pas les utiliser sans raison valable), soit tu utilises des variables locales et, dans ce cas, elles ont exactement la durée de vie du bloc « {…} » dans lequel elles sont déclarées : elles vont dans la pile et l'espace qu'elles occupent est automatiquement libéré dès que tu quittes ce bloc.
Bonjour
Non il n'y a aucun moyen parce que c'est totalement inutile. Soit tu réutilises une variable qui t'a déjà servi (style "i" pour les indices de tableaux), soit tu les oublies et tu laisses le C les supprimer lui-même à la fin de leurs durée de vie (qui sera le bloc pour les variables "auto" et/ou "register" définies dans un bloc, et qui sera le programme pour les variables globales et/ou "static" même si ces dernières sont définies dans un bloc).