IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Gestion des erreurs, allocation dynamique


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Par défaut Gestion des erreurs, allocation dynamique
    Bonjour,
    j'ai lu qu'il était fortement conseillé de libérer les variables allouées dynamiquement en utilisant la fonction free, lorsque celles-ci n'étaient plus utilisées, et ceci en particulier juste avant que le programme se termine.
    Toutefois, j'aimerais savoir ce qu'il en est dans le cas où le programme se termine avec un "statut d'erreur". C'est à dire, si avant de faire un exit(EXIT_FAILURE) il était recommandé de libérer toutes les variables avec free (ce qui compliquerait beaucoup le code dans certains cas).

    Merci par avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Salut

    Bonjour,
    j'ai lu qu'il était fortement conseillé de libérer les variables allouées dynamiquement en utilisant la fonction free, lorsque celles-ci n'étaient plus utilisées, et ceci en particulier juste avant que le programme se termine.
    Toutefois, j'aimerais savoir ce qu'il en est dans le cas où le programme se termine avec un "statut d'erreur". C'est à dire, si avant de faire un exit(EXIT_FAILURE) il était recommandé de libérer toutes les variables avec free (ce qui compliquerait beaucoup le code dans certains cas).

    Merci par avance.
    C'est d'ailleurs une des raisons pour lesquelles je ne suis pas trop ami avec la fonction exit. J'ai l'impression que de plus en plus de codeurs utilisent cette fonction, par facilité (pour éviter structurer correctement leur programme) et de manière un peu abusive, dès le moindre pépin, par exemple si un malloc ou un fopen échoue.
    Il y a peut-être des cas où exit est utile, recommandé voire nécessaire (je ne sais pas, je n'ai pas la connaissance absolue non plus...), mais je constate qu'il est quand même utilisé un peu trop facilement.

    Moi, je suis plutôt "branché" par les programmes un minimum structurés, de manière logique et cohérente, qui gèrent les erreurs, dans le sens où je considère que chaque fonction doit avoir un rôle spécifique et retourner une valeur (si nécessaire) indiquant à la fonction appelante si cela a réussit ou non. Et si erreur il y a, la fonction appelante la gère, ou bien la fait gérer par celle qui l'a appelée, etc. Histoire de remonter, comme une pyramide, vers le sommet jusqu'à ce qu'on ait géré proprement le problème (par "géré", je ne dis pas forcément "réparé"). Je trouve que ça fais plus propre.
    Enfin, ce n'est que ma vision personnelle de la programmation, qui n'engage que moi.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Par défaut
    Cela pose-t'il un probleme d'utiliser souvent exit pour gérer les erreurs ?

  4. #4
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Je connais des gens qui disent que les OS modernes libèrent automatiquement la mémoire, et que tu coup les free sont useless. D'un côté il a pas tord si on programme pour win, nux, ou mac mais si on veut faire de l'embarqué je pense que ça a son importance.
    Je ne connais pas trop l'embarqué, mais je pense qu'un free non fait est utiliser de la mémoire pour rien une fois le programme terminé.

    @ Flynet : Je suis de l'avis de jeroman, a savoir ne pas en abuser.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 74
    Par défaut
    Abusif ? Je pense a des erreurs d'ouvertures de fichiers ou d'initialisation de bibliotheques... Mais cela-a-t'il des consequences d'utiliser souvent exit ?

  6. #6
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Ca a des conséquences si tu veux que ça en aie. Ca dépend de ton programme, si un fichier n'est pas chargé est-ce que tu quittes ton programme, ou est-ce que tu affiches un message comme quoi tu n'as pas pu ouvrir le fichier et tu fais autre chose, ou tu reviens à l'étape d'avant ? (ambiguë comme phrase )

Discussions similaires

  1. Gestion des erreurs en dynamique
    Par martin_alexandre_fr dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 05/11/2013, 15h56
  2. Problème de sélection dans un tableau dynamique (gestion des erreurs)
    Par aulilou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/08/2007, 16h38
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo