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 :

Pb d'initialisation de char*


Sujet :

C++

  1. #1
    tsp
    tsp est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut Pb d'initialisation de char*
    Bonjour,
    lorsque je declare et initialise un char* de la maniere suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char* texte = new char[];
    elle contient le texte suivant :

    ÿÿÿÿ<<<<<<<<îbîb
    (bon ok ce n'est pas vraiment ça mais ça y ressemble, c'est fait avec des caracteres bizarres)

    bref, le résultat est que lorsque je copie un texte dans ma variable avec la fonction strncpy, j'obtiens le texte suivant dans ma variable :

    textecopié<<<<<<<îbîb
    Comment cela se fait-ce t-il ?

  2. #2
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    Parce que dans ton code tu alloues seulement de la place pour ton tableau, tu n'initialise avec aucune donnée ! D'ailleurs il faut mettre une valeur dans char[xxx]...

    Pour déterminer la fin du chaîne le C utilise le caractère nul ou '\0'. Il faut impérativemnet qu'il soit à la fin de toute chaîne, sans quoi tu t'expose à des débordements mémoire. Et bien sûr à la lecture il faut le prendre en compte mais normalement tu n'auras jamais à le faire toi-même caractère par caractère.

    Et le je te parle directement. Mais en C++ pour les chaîne de caractères on utilise ça : http://c.developpez.com/faq/cpp/?page=strings

    Pour ton allocation dynamique aussi plus d'infos dans la FAQ : http://c.developpez.com/faq/cpp/?page=pointeurs

  3. #3
    tsp
    tsp est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 82
    Par défaut
    en fait je ne pensais pas avoir les méthodes necessaires pour faire ce que je voulais avec des string. Mais finalement si, il y a ce que je veux donc j'ai pu le faire avec des string.

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

Discussions similaires

  1. Ré initialiser un char ?
    Par Invité dans le forum C
    Réponses: 11
    Dernier message: 05/09/2011, 16h30
  2. initialisation de char[10]
    Par deubelte dans le forum C++
    Réponses: 6
    Dernier message: 01/05/2011, 22h48
  3. Initialisation, const char *, malloc
    Par kromartien dans le forum C
    Réponses: 8
    Dernier message: 17/06/2007, 23h53
  4. Réponses: 9
    Dernier message: 24/05/2007, 16h05
  5. char[] et initialisation
    Par Antoine_935 dans le forum C++
    Réponses: 5
    Dernier message: 08/09/2006, 10h16

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