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 :

Une explication allocation dynamique


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Indonésie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 47
    Par défaut Une explication allocation dynamique
    Salut, je voulais une explication à propos allocation dynamique. Mon prof. a declaré une variable de type pointeur dans la classe
    #define PSEUDOLEN 20
    class Joueur
    {
    protected:
    char *ppseudo;
    public:
    Joueur(void);
    };
    dans la fonction de constructeur SANS parametre il fait ceci:
    Joueur::Joueur(void)
    {
    ppseudo = new char[PSEUDOLEN +1];
    ppseudo[0] = 0;
    }
    ce que je ne comprends pas pourquoi il a considere la variable ppseudo comme tableau dans la fonction constructeur sans parametre pourtant il a declare cette variable comme variable de type pointeur normale pas comme un tableau. Merci d'avance

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    La variable est un pointeur, de type pointeur.
    Par contre, il alloue un tableau en mémoire, et fait pointer son pointeur sur le premier élément de ce tableau.
    Enfin, il faut savoir que pour un pointeur, écrire p[n] est équivalent à écrire p+n. C'est à dire qu'on obtient le pointeur situé n emplacements mémoire plus loin que p.

    Il y a un certain nombre de cas en C et C++ où on confond tableau et pointeur vers le premier élément de ce tableau.

    Enfin, pour complétude, et bien que visiblement ton prof n'ait pas choisi cette approche, en C++, un tableau de char s'écrirait plutôt std::vector<char> et une chaîne de caractères std::string. L'utilisation directe de ces tableaux/pointeurs est en règle générale une source d'erreur que l'on a donc encapsulé pour plus de sûreté.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Réponses: 67
    Dernier message: 13/02/2007, 18h08
  2. Réponses: 8
    Dernier message: 14/12/2006, 23h37
  3. Réponses: 2
    Dernier message: 05/09/2006, 00h47
  4. [D7] - Allocation dynamique dans une DLL
    Par david_chardonnet dans le forum Delphi
    Réponses: 6
    Dernier message: 05/07/2006, 15h28
  5. allocation dynamique ne fonctionne qu une fois.
    Par michael urbain dans le forum C
    Réponses: 7
    Dernier message: 11/03/2006, 10h51

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