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 :

[Votre avis]Vérifier TOUTES les allocations de mémoire?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    349
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 349
    Par défaut [Votre avis]Vérifier TOUTES les allocations de mémoire?
    Bonjour,

    J'aimerais connaître votre avis sur l'allocation de mémoire avec new: est-ce que vous vérifiez que toutes les allocations se passent bien? Si par exemple vous faîtes un nouveau tableau de deux entiers, ou un nouvel objet très petit, la probabilité que ça ne marche pas est très faible.

    Personnellement jusqu'ici je ne testais que lors de "grosses" allocations de mémoires (selon mon appréciation), et je trouve que devoir faire un try/catch (ou un no_throw avec test du pointeur) pour des "petits" new donne un code assez lourd. Quant à faire des gros blocs try/catch englobant ça me semble pas très propre.

    Votre avis sur le sujet?

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Fais le quand c'est utile. Personnellement je n'ai jamais eu besoin de tester mes allocations, si une exception est lancée alors la rattraper dans le main() et arrêter le programme convient pour les projets que je développe.

    Par contre si tu dois gérer quelque chose après une telle exception (ce qui est plutôt difficile étant donné que tu ne peux plus allouer de mémoire), alors gère les bad_alloc là où cela a un sens de les gérer.

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Si tu te trouves a faire un try/catch localement, utilise la variante nothrow de new. Mais dans ma pratique, le manque de memoire se trouve gere a un niveau superieur et donc l'exception est bien ce qu'il faut.

  4. #4
    Membre confirmé Avatar de O( N )
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2006
    Messages : 126
    Par défaut
    Bonjour a tous ,

    Pour répondre à ta question, je t'en poserais une autre

    Peut - tu développer un programme faisant le new et la vérification par le 'try-catch' en même temps ?

    Alors tu appeleras ta fonction plutot que le new et
    tu ne te poseras plus la question dois-je mettre un 'try-catch' ?

    Je ne suis pas un cador en C++ excusez moi si je dis des bétises !

  5. #5
    Membre éprouvé Avatar de galak63
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut
    Ma réponse perso est non, si on commence à vérifier ce genre de chose on va se mettre a vérifier tout et n'importe quoi dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int i=1;
    if ( i != 1) ERREUR !

  6. #6
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Bah a priori avec le RAII les try/catch tu devrais pas en voir souvent.

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Par défaut
    Bonjour,
    Citation Envoyé par galak63
    Ma réponse perso est non, si on commence à vérifier ce genre de chose on va se mettre a vérifier tout et n'importe quoi dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int i=1;
    if ( i != 1) ERREUR !
    As-tu la vague impression d'écrire n'importe quoi ?

    Si ce n'est pas le cas, ben c'est vrai quand même.

Discussions similaires

  1. Vérifier tout les champs d'un formulaire
    Par snorky94 dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2012, 19h44
  2. Réponses: 12
    Dernier message: 24/06/2009, 22h43
  3. Réponses: 13
    Dernier message: 01/02/2008, 22h55
  4. Donnez votre avis sur les articles de Developpez.com
    Par Geronimo dans le forum C++Builder
    Réponses: 13
    Dernier message: 14/01/2007, 22h00
  5. Réponses: 8
    Dernier message: 17/10/2002, 12h52

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