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 :

Initialisation de pointeurs / desallocation mémoire


Sujet :

C++

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut Initialisation de pointeurs / desallocation mémoire
    Bonjour,
    j'ai une strucure contenant des pointeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct ma_struct {
        ...
    SSL_CTX *ctx;
    SSL *ssl;
       ...
    }ma_struct_t
    j'aimerais savoir quand est ce que je dois initialiser ctx et ssl.
    1) est ce que je dois les initialiser (avec NULL ) dès la définition de la structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct ma_struct {
        ...
    SSL_CTX *ctx = NULL;
    SSL *ssl = NULL;
       ...
    }ma_struct_t
    2) Est ce que je peux les initialiser dans une fonction qui initialise les autres membres de ma structure ?

    3) laquelle des deux méthodes est la meilleure ?

    4) Par ailleurs, j'aimerais savoir si on peut faire un SSL_CTX_free(ctx) et SSL_free(ssl) si on n'a pas alloué de la mémoire pour les objets auxquels pointent respectivement ctx et ssl ? en gros est ce qu'on peut faire un free(p) d'un p*=NULL;

    Merci d'avance pour votre aide.

  2. #2
    screetch
    Invité(e)
    Par défaut
    1) le compilateur va refuser. Si tu es en C++ (vu le forum, mais on ne sait jamais) alors le meilleur endroit pour les initialisations est un constructeur.

    2) oui tu peux les initialiser ou tu veux. avant ca, le pointeur sera non initialisé et pointera sur du caca. Ca ne pose pas de probleme tant que tu ne te sers pas du pointeur

    3) la même méthode: utilise un constructeur pour initialiser ta structure, et place toute tes initialisations dedans

    4) on peut appeler free(NULL) mais sans doute pas SSL_CTX_Free ou SSL_Free. Et pire que tout, on ne peut pas appeler ces methodes sur des pointeurs non initialisés (on ne sait meme pas si ils sont valides ou pas!)

Discussions similaires

  1. Initialisation de pointeur
    Par cauriera dans le forum C
    Réponses: 7
    Dernier message: 19/04/2007, 11h47
  2. [Stratégie]Allocation/Desallocation mémoire
    Par lefait dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2006, 10h44
  3. [Pointeur] Allocation mémoire
    Par Rayek dans le forum Langage
    Réponses: 22
    Dernier message: 20/05/2005, 10h26
  4. Réponses: 4
    Dernier message: 08/02/2005, 20h47
  5. Initialisation de pointeurs
    Par Gnux dans le forum C
    Réponses: 5
    Dernier message: 03/10/2003, 17h10

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