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 :

Erreur sémantique lors de la concaténation de deux chaines de caractères


Sujet :

C++

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Erreur sémantique lors de la concaténation de deux chaines de caractères
    Bonjour à tous,

    J'ai pour les cours à expliquer le fonctionnement d'un bout de code, j'en comprend bien le sens mais j'ai une erreur alors que je ne devrais pas en avoir.

    La ligne qui fait planter le programme est la ligne, je ne comprends pas pourquoi :/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    memmove (dest+ l_dest, ajout, nb_carac_max - l_dest);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    int main()
    {
        char tab1[10] = "Coucou, ";
        char tab2[40] = "tu veux voir ma paire de lunette ?";
    // On créé deux tableau et l'on va concaténer le premier au second.
        concat(tab1,tab2,70);
        cout<< tab1;
    // On affiche la concaténation du tableau 1
        return(0);
    }
     
    /*Fonction cacaténer
    Elle permet de concaténer une chaîne de caractère 2 à une chaine de caractère 1 afin d'obtenir un seul tableau.
    */
     
    char* concat(char *dest, const char *ajout, int nb_carac_max)
    {
        int l_dest= strlen(dest);
        int l_ajout= strlen(ajout);
     
        if( nb_carac_max <= 0 || nb_carac_max > l_dest + l_ajout)
        {
            nb_carac_max= l_dest+ l_ajout;
        }
     
        if( nb_carac_max > l_dest)
        {
            memmove (dest+ l_dest, ajout, nb_carac_max - l_dest);
        }
        dest[nb_carac_max] = '\0';
        return dest;
    }
    Questions :
    Pour le prof écrit "return dest;" et non pas "return (dest);" ?
    Dernière modification par gbdivers ; 27/12/2012 à 10h44.

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

Discussions similaires

  1. erreur de concaténation de deux chaines
    Par 3aychoucha dans le forum C++
    Réponses: 5
    Dernier message: 08/09/2011, 11h34
  2. concaténation de deux chaines
    Par mdh12 dans le forum C
    Réponses: 13
    Dernier message: 11/11/2009, 20h25
  3. Erreur kettle lors de la synchronisation de deux tables.
    Par kilrou dans le forum kettle/PDI
    Réponses: 9
    Dernier message: 20/08/2009, 12h30
  4. problème de concaténation de deux chaines
    Par info79 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/01/2008, 17h04
  5. comparer deux chaines de caractères
    Par peuf23 dans le forum Langage
    Réponses: 3
    Dernier message: 30/01/2006, 14h31

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