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 :

Ajouter un char* dans un char**


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 83
    Par défaut Ajouter un char* dans un char**
    Bonjour,

    est il possible d'ajouter une char * dans un char ** qui contient déja des chaines de caractére ? Si oui, je veut bien des pistes

    Merci

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Ce que tu veux faire n'est pas très clair, un char** est un tableau de char*, donc de chaine de caractères.

    Si tu alloues assez d'espace pour ton char**, exemple ici pour 10 chaines de caractère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // On alloue notre tableau.
    char** mes_chaines = malloc(sizeof(char*) * 10);
    // On alloue chaque case pour des chaines de caractères de 50 char.
    int taille_chaine = 50;
    for(i=0; i < 10; ++i)
      mes_chaines[i] = malloc(sizeof(char) * taille_chaine);
     
    // On libère la mémoire une fois qu'on en a plus besoin
    // D'abord pour chaque chaine.
    for(i=0; i < 10; ++i)
      free(mes_chaines[i]);
    // Ensuite pour le tableau de pointeur.
    free(mes_chaines);
    Alors tu peux utiliser ces 10 espaces en veillant bien à ne pas dépasser la limite de 50 caractères par chaine.

    Si tu veux concaténer deux chaines, il suffit de vérifier qu'il y a bien la place pour la concaténation et puis d'utiliser la fonction strcat définie dans string.h.

    N'oublie pas de terminer tes chaines de caractère par le caractère '\0'. C'est de cette façon que printf("%s", chaine) trouve la fin de ta chaine et toutes les autres fonctions du C d'ailleurs.

    En espérant avoir aidé

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Citation Envoyé par lirycs78 Voir le message
    Bonjour,

    est il possible d'ajouter une char * dans un char ** qui contient déja des chaines de caractére ? Si oui, je veut bien des pistes

    Merci
    Si tu veux des pistes, fais déjà en sorte qu'on comprenne ta question.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 40
    Par défaut
    sinon c'est beaucoup plus simple de manipuler une liste chainée de char *

Discussions similaires

  1. Ajout char dans adresse pointeur
    Par guitz dans le forum Débuter
    Réponses: 12
    Dernier message: 18/10/2009, 22h15
  2. Convertir un (char *) en (const char *) dans C++
    Par anas.eh dans le forum C++
    Réponses: 10
    Dernier message: 03/09/2007, 13h59
  3. Copier un char* dans un char[xx]
    Par ViRouF dans le forum C++
    Réponses: 8
    Dernier message: 21/03/2007, 15h49
  4. Insertion d'un char dans un char *
    Par bugmenot dans le forum C
    Réponses: 2
    Dernier message: 22/10/2005, 15h17
  5. [SQL] Convertir un champ INT en CHAR dans un SELECT ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/03/2005, 14h45

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