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 :

char[1024] vs char*


Sujet :

C

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 25
    Points
    25
    Par défaut char[1024] vs char*
    Bonjour,

    J'ai un problème de compatibilité de types :

    J'ai une variable filename déclarée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     char filename[K];      /* Input file name */
    Elle est initialisée ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     filename[0] = (char)0; /* No input file */
    Et moi je veux utiliser un fichier j'écris donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    filename = "C:\\binaire3.bin";
    J'obtiens l'erreur "incompatible types". Pourtant je pense qu'il s'agit bien de 2 chaînes de caractères non?

    Merci d'avance!

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    tu ne peux pas faire d'affectation de chaine de caractères (à part statique) comme ça.

    il faut utiliser la fonction strcpy.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char filename[10];
    strcpy(filename, "toto");
     
    // ou statique
     
    char  filename[10] = "toto";

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Pour préciser un peu la chose, tu peux utiliser l'opérateur = lors de l'initialisation d'une chaine de caractères mais pas lors d'une affectation. Dans la FAQ, regarde cette entrée ainsi que l'entrée suivante : http://c.developpez.com/faq/?page=strings#STRINGS_init


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     filename[0] = (char)0; /* No input file */
    Tu n'as pas besoin de caster 0 en char. Tu peux aussi écrire (et c'est peut-être plus parlant) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     filename[0] = '\0'; /* No input file */

    J'obtiens l'erreur "incompatible types". Pourtant je pense qu'il s'agit bien de 2 chaînes de caractères non?
    La gestion des chaines de caractères est un point compliqué du C. Il n'y a pas en tant que tel un objet de type "chaine de caractères" ; il y a des tableaux de caractères et des pointeurs sur caractère.

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 40
    Points : 25
    Points
    25
    Par défaut
    C'est compris, merci !

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

Discussions similaires

  1. [Clé de registre] Conversion char* vers unsigned char*
    Par The Lord of Nesquik dans le forum C
    Réponses: 7
    Dernier message: 03/07/2006, 23h30
  2. Types : char vs. unsigned char
    Par Herode dans le forum C++
    Réponses: 3
    Dernier message: 15/02/2006, 21h39
  3. vector<unsigned char> et unsigned char* : conversion ?
    Par zax-tfh dans le forum SL & STL
    Réponses: 5
    Dernier message: 15/01/2006, 10h43
  4. Insertion d'un char dans un char *
    Par bugmenot dans le forum C
    Réponses: 2
    Dernier message: 22/10/2005, 15h17
  5. char et unsigned char
    Par jobherzt dans le forum C++
    Réponses: 8
    Dernier message: 11/02/2005, 00h24

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