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 :

Attribution d'une valeur à une chaine de caractères


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Attribution d'une valeur à une chaine de caractères
    Bonsoir tout le monde

    j'ai déclaré une structure s contenant un champ nom. Le champ nom est de type nom_t avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    typedef char* bits63;
    typedef nom_t bits63
    j'ai ensuite déclaré la variable tcbdesc de type s. Maintenant je veux assigner à tcbdesc-->nom la valeur "ttcb1"j'ai d'abord essayé la commande suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    write (tabdesc-->nom, "ttcb1",sizeof("ttcb1"));
    printf ("La val de tabdesc.nom est %s ", tabdesc-->nom);
    mais l'instruction printf me retourne la valeur (null)
    j'ai ensuite essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strcpy(tabdesc-->nom,"ttcb1");
    et j'ai cette fois eu une erreur, j'ai finalement essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    char* inter = "ttcb1";
     memcpy(tabdesc-->nom,inter,sizeof(inter));
    et j'ai eu une erreur de segmentation
    SVP, quelqu'un pourrait il m'indiquer comment faire, je n'ai pas compris pourquoi aucune commande ne marche
    Merci d'avance

  2. #2
    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 Re: Attribution d'une valeur à une chaine de caractères
    Citation Envoyé par tatu
    SVP, quelqu'un pourrait il m'indiquer comment faire, je n'ai pas compris pourquoi aucune commande ne marche
    Ce que tu as posté est bourré d'erreurs et n'a aucune chance de compiler. Peux tu poster le code exact (copié/collé) et réduit au minimum montrant l'erreur ?
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2005
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 142
    Points : 127
    Points
    127
    Par défaut
    Je crois que tatu tatonne

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Voici le code tel qu'il est , les essais sont indiqués
    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
    int openTCBConnection(descriptor_t *tcb_desc)
    {
    	int fd,con;
    	ReqTcbHeader msg;
    	char aux[30];
    	int error;
    	char* inter;
    #ifdef TTCB
    	int a;
    #endif
    //essain 1
     
    	if (write(tcb_desc->nom,"ttcb1",sizeof("ttcb1")) < 0)
    		return TCB_ACESS_ERROR;
    //essai n 2
    	/*strcpy(tcb_desc->nom,"ttcb1");
    	printf ("La val de desc.nom est : %s",tcb_desc->nom);*/
     
    //essai n 3
     
                 /*   inter="ttcb1";
    	memcpy(tcb_desc->nom,inter, sizeof(inter));*/
    //new
    Si j'avais compris la source du problème lors du premier essai, je ne serais pas passé aux autres

  5. #5
    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 tatu
    Voici le code tel qu'il est , les essais sont indiqués
    Oups, désolé, j'ai oublié 'complet' et 'compilable'...

    Je reformule :

    Peux tu poster le code exact (copié/collé), complet, compilable mais réduit au minimum montrant l'erreur ?

    Ok, j'ai réconstitué une manip qui fonctionne :
    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
     
    #include <stdio.h>
     
    typedef struct
    {
        char const * nom;
    }
    descriptor_t;
     
    int openTCBConnection(descriptor_t *tcb_desc)
    {
        tcb_desc->nom = "ttcb1";
        printf ("La val de desc.nom est : '%s'\n",tcb_desc->nom);
        return 0;
    }
     
    int main (void)
    {
        descriptor_t tcb_desc;
        openTCBConnection(&tcb_desc);
     
        return 0;
    }
    Je ne sais pas ce que tu voulais faire exactement (j'ai 'inventé' la structure), mais ceci est conforme.
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. [XL-2010] Extraction valeur liée à une ou plusieurs chaines de caractères dans cellule
    Par Kiveudesprunos dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 29/04/2015, 22h58
  2. Réponses: 2
    Dernier message: 29/07/2014, 16h06
  3. Réponses: 7
    Dernier message: 21/06/2006, 16h42
  4. Réponses: 1
    Dernier message: 25/04/2006, 16h06
  5. Remplacer une PARTIE de chaine de caractères dans un champ
    Par Turlututuchapopointu dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/08/2005, 11h57

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