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 **p


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 9
    Points : 11
    Points
    11
    Par défaut initialisation **p
    1) j'ai créé un buffer[10]

    char buffer [10]

    2) je demande une chaine alphanumerique
    3) je l'enregistre dans buffer

    cin>>buffer;
    int n = strlen(buffer);

    4) je crée un **p

    char **p=new char*[n];

    5) et j'alloue de la mémoire pour n (**p)

    COMMENT FAIT ON CORRECTEMENT

    6) je voudrai copier dans chaque p la chaine enregistrée dans buffer

    est-ce juste de procéder comme suit :

    for (i=0;i<n;i++)
    (p+i)=buffer;

    et lorsque je veux afficher le contenu

    for (i=0;i<n;i++)
    cout<<**(p+i);

    7) delete p;
    est ce juste de libérer la mémoire comme ceci


    merci

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	char buffer [10];
    	cin>>buffer;
     
    	int taille = 5;
    	int n = strlen(buffer); 
     
    	char **p=new char*[taille]; 
    	for (int i=0; i<taille; i++)
    	{
    		p[i] = new char[n];
    		strcpy(p[i],buffer);
    		cout<<p[i]<<endl; 
    	}
    sans oublier les include qui vont bien.

    (NOTE : sinon plus simple et plus robuste - utiliser std::string et std::vector)

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Correctement,
    - Tu ne remplis pas un buffer à taille limité avec l'opérateur d'extraction appliqué sur un flux (>>)
    - Tu n'enchaines pas des new explicites sans t'occuper de gérer les éventuelles exceptions.

    a- => std::string (souple) ou std::istream::getline avec limitation du nombre de caractères (inutilement rigide)
    b- => divers algos (/bidouilles) plus ou moins complexes (FAQ, non ?), ou vecteur de pointeurs intelligents (dans le cas général), ou dans le cas présent : vecteur de chaines (std::vector<std::string>).
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. [Servlet] Fichiers d'initialisation
    Par david71 dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 03/09/2003, 13h47
  2. Créer et initialiser un composant TStatusBar :help:
    Par James_ dans le forum C++Builder
    Réponses: 10
    Dernier message: 21/08/2003, 08h52
  3. [servlet] initialisation d'objets
    Par tiPouick dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 05/08/2003, 12h12
  4. Initialisation de XMLModule
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 10
    Dernier message: 01/04/2003, 10h08
  5. initialisation Directinput avec delphi
    Par Madmaxx dans le forum DirectX
    Réponses: 1
    Dernier message: 21/02/2003, 17h37

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