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 :

Problème pointeurs et fonctions


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut Problème pointeurs et fonctions
    Bonjour à tous,

    Je bloque sur mon programme à cause de la notion de pointeur que je ne saisie pas trop.

    J'ai une structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    struct Id_Key
    {
    	unsigned char  id[7];
    };
    elle reçoit une succession de '0' et de '1' par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    struct Id_Key key = {0};
     
    for( i=0 ; i<8 ; i++)
    			{
    			 	key.id[i] = lire_octet();
    			}
    J'aimerai pouvoir récuperer ces trames et les envoyer via la fonction :

    putsUSBUSART(char* data);

    J'ai essayé de mettre directement putsUSBUSART(id.key[6]);

    Mais lorsque je me connecte à l'hyperterminal les données sont completement incohérentes...

    Comment faire pour obtenir les valeurs correctes?


    Bonne journée.

    Merci

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Attention la borne du for est fausse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct Id_Key
    {
       unsigned char  id[7];
    };
    ...
    struct Id_Key key = {0}; 
    for( i=0 ; i<7 ; i++)
    {
       key.id[i] = lire_octet();
    }

    putsUSBUSART(char* data);
    J'ai essayé de mettre directement putsUSBUSART(id.key[6]);
    Si tu veux transmettre l'intégralité du tableau, il faut passer son adresse de départ :

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    Bonjour,

    Pour le coup de la borne de la boucle for je pensais que :

    unsigned char id[7]; -> id[0]..id[7]

    Donc les bornes sont de 0 à 8 exclu non?

    Bonne journée

  4. #4
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    J'ai essayé le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    putsUSBUART(key.id);
    Mais cela ne change rien...

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Citation Envoyé par crimetime Voir le message
    le coup de la borne de la boucle for je pensais que :

    unsigned char id[7]; -> id[0]..id[7]

    Donc les bornes sont de 0 à 8 exclu non?
    Non :unsigned char id[7]; -> id[0]..id[6]

  6. #6
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 29
    Par défaut
    Ah oui autant pour moi grosse erreur....

    Mon problème est que ces différents unsigned char sont de la forme :

    key.id[4] = 0x45 par exemple...

    Comment je pourrais convertir cela en char pour pouvoir afficher sur l'hyperterminal?


    Bonne journée.

  7. #7
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Tu n'es pas clair.
    Si key.id[4] = 0x45, que veux-tu voir s'afficher exactement sur le terminal ?

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

Discussions similaires

  1. Problème Pointeur de fonction
    Par olivier21c dans le forum C++
    Réponses: 6
    Dernier message: 06/10/2014, 14h05
  2. Réponses: 4
    Dernier message: 10/12/2009, 00h45
  3. Problème pointeur sur fonction static
    Par Julien_C++ dans le forum C++/CLI
    Réponses: 5
    Dernier message: 11/01/2008, 19h26
  4. Problème: pointeur de fonction à partir d'un namespace
    Par akileaQuébec dans le forum C++
    Réponses: 8
    Dernier message: 09/10/2007, 10h37
  5. Problème pointeur de fonction
    Par ired dans le forum C++Builder
    Réponses: 7
    Dernier message: 16/06/2007, 13h24

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