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 :

[VC++]Probleme d'affectation de chaine de caractere


Sujet :

C

  1. #1
    Débutant
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Points : 81
    Points
    81
    Par défaut [VC++]Probleme d'affectation de chaine de caractere
    je veux affecter une chaine de caractere à une variable comme suit :

    j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char* sock_name = "/tmp/cpa_socket"
    char [14] sa_data;
    &sa_data =  sock_name;
    mais j'ai le message d'erreur suivant à la compilation :

    warning C4047: '=' : 'char (*)[14]' differs in levels of indirection from 'char *'
    error C2106: '=' : left operand must be l-value
    comment puis-je regler ca?

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    ceci n'est pas du C++ ,
    voir faq C :
    http://c.developpez.com/faq/c/?page=...GS_string_init

  3. #3
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par ksoft
    je veux affecter une chaine de caractere à une variable comme suit :

    j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char* sock_name = "/tmp/cpa_socket"
    char [14] sa_data;
    &sa_data =  sock_name;
    mais j'ai le message d'erreur suivant à la compilation :



    comment puis-je regler ca?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    const char* sock_name = "/tmp/cpa_socket"
    char [17] sa_data;
    strncpy(sa_data, name, 16); 
    sa_data[17] = 0;
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  4. #4
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 727
    Points
    1 727
    Par défaut
    Citation Envoyé par Skyrunner
    Depassement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sa_data[sizeof(sa_data) - 1] = '\0';

  5. #5
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Gruik
    Depassement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sa_data[sizeof(sa_data) - 1] = '\0';
    Ah merde, pas fais attention...
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par ksoft
    je veux affecter une chaine de caractere à une variable comme suit :
    Comme l'indique ton livre de C, les affectations de chaines se font avec strcpy() ou une de ses soeurs... (<string.h>)
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Skyrunner
    Ah merde, pas fais attention...
    Je préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    const char* sock_name = "/tmp/cpa_socket"
    char sa_data[17];
    *sa_data = 0;
    strncat(sa_data, name, sizeof sa_data - 1);
    Mais ça coupe sans prévenir...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
       char *sa_data = strdup (sock_name);
       if (sa_data != NULL)
       {
       ...
     
          free (sa_data), sa_data = NULL;
       }
    strdup() est POSIX.1, donc très portable. Sinon, il est trivial de reconstruire cette fonction bien connue et bien pratique.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. problem de calculer une chaine de caractere
    Par NapsterVB dans le forum Delphi
    Réponses: 9
    Dernier message: 19/04/2007, 16h21
  2. Réponses: 4
    Dernier message: 30/09/2006, 12h27
  3. Réponses: 1
    Dernier message: 29/05/2006, 12h37
  4. Probleme de tri de chaine de caractere...
    Par GESCOM2000 dans le forum Access
    Réponses: 12
    Dernier message: 28/12/2005, 13h43
  5. Probleme de tri de chaine de caractere...(BIS)
    Par GESCOM2000 dans le forum Access
    Réponses: 4
    Dernier message: 27/12/2005, 18h49

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