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 :

question sur les pointeurs dans les structures!


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 33
    Points : 23
    Points
    23
    Par défaut question sur les pointeurs dans les structures!
    soit la definition

    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
    typedef struct
                                {
                                 char *date;
                                }temps;
     
     
    char * Get_Time()
      {
      char *t;
      time_t timestamp = time(NULL);
      strftime(t, sizeof(t), "%a %d/%m/%Y", localtime(&timestamp));
      return(t);
      }
     
     
    void main()
      {
      S->date=Get_Time();     /*l'erreur se trouve dans cette ligne*/
      }
    cet un exemple seulement.
    par ce code je veux mettre dans le pointeur date qui est un element de la structure "temps" la date de l'ordinateur mais le compilateur m'affiche l'erreur suivante : " Error: program.cpp(522,7)ointer to structure required on left side of -> or ->* "
    et je n'arrive pas a la bonne reponse.

    merci a tous d'avance

  2. #2
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    le problème est que S n'est pas défini dans le contexte de la fonction main(). C'est à dire que S n'existe pas. Il faut au préalable ceci:

    void main()
    {
    temps S;
    S.date = ...
    }

    De plus, à l'intérieur de la fonction de conversion en chaine Get_Time(), il y a une erreur: t est un pointeur vers des char. Cependant, il faut allouer de la place pour ces char, avec un malloc par exemple, ce qui donnera:

    char * t = malloc(80); //80 caractères alloués pour stocker une chaine
    strftime(t,80,...);

    Ce qu'il faut bien comprendre, c'est que t est un pointeur vers char. Donc sizeof(t) renvoi toujours 4 octets ou 8 octets selon 32bits ou 64bits.

    Voici un lien pour l'application de strftime:
    http://www.cplusplus.com/reference/c...time/strftime/

    En espérant que ca vous aura aidé.

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/12/2008, 10h32
  2. Question sur la recherche dans les chaînes de caractères
    Par Garamante dans le forum VBScript
    Réponses: 5
    Dernier message: 15/12/2008, 17h33
  3. Questions sur la navigation dans les répertoires
    Par belle5656 dans le forum Langage
    Réponses: 86
    Dernier message: 03/11/2007, 20h44
  4. Problème sur un pointeur dans une structure
    Par steph_1 dans le forum Langage
    Réponses: 5
    Dernier message: 05/09/2007, 18h59
  5. Les polices dans les tables et les requêts
    Par zooffy dans le forum Access
    Réponses: 3
    Dernier message: 21/06/2006, 11h06

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