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 :

MACRO pour malloc et effets de bord


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Espagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Par défaut MACRO pour malloc et effets de bord
    Bonjour.
    Je viens de lire le tuto à la page http://rperrot.developpez.com/articles/c/allocationC/

    concernant la gestion dynamique de mémoire.
    Je pense utiliser les macros proposées pour éviter d'avoir à tout le temps tester que mon allocation à bien marchée.
    Par contre, je ne comprends pas bien le problème par rapport aux effets de bord et comment les contourner?

    Merci d'avance !

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Quels effets de bord ? Peux-tu être plus précis ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Ha ça !! Bin heu moi en fait je préfère utiliser des appels vers des fonctions au lieu d'utiliser des macro, en tous cas pour cette utilisation là mais pour éviter cet effet, si le C était orienté objet cela pourrais être éventuellement évité mais sinon je ne pense pas qu'il existe une quelconque manière.
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  5. #5
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut
    Bonjour,
    Effectivement, faire une fonction xmalloc (ou verif_malloc bref comme on veut) prototypes comme le vrai malloc et qui vérifie le code de retour me semble le plus simple a faire. (même si ca fais des appels de fonction en plus, la macro est plus optimisée diront nous).

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Le probleme avec les macros du genre xmalloc(), c'est qu'elles ne sont vraiment utiles (dans le sens "factoriser du code") que si elles contiennent un exit(). Or faire un exit() en plein milieu du code, ce n'est pas propre. Du coup, on s'apercoit qu'ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    p = malloc(n*sizeof *p);
    if (p == NULL)
    {
      /* handle error */
    }
    else
    {
      /* do something */
    }
    n'est pas plus long qu'utiliser une macro...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. macro pour un malloc
    Par salseropom dans le forum C
    Réponses: 4
    Dernier message: 15/02/2006, 10h53
  2. Effet de bord...
    Par pierre50 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 15
    Dernier message: 12/10/2005, 18h11
  3. Effet de bord
    Par Clad3 dans le forum OpenGL
    Réponses: 11
    Dernier message: 04/10/2005, 14h38
  4. Réponses: 7
    Dernier message: 13/12/2003, 14h09

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