Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

pointeur



  1. #1
    Julien_B

    pointeur


    ------

    Bonjour,

    J'ai un petit problème avec le compilateur C18, avec CC5 ma fonction marché correctement mais plus sur C18,

    Donc imaginons que j'ai deux variables :

    char Buffeur = 50; //Se trouve à l'adresse mémoire 49
    char test = 10; //Se trouve à l'adresse mémoire 50
    char * pointeur; //pointeur mémoire

    sur CC5X je pouvais faire :

    pointeur = buffeur //Le pointeur vaut 50
    envoie (*pointeur) //Envoie la valeur de la variable qui se trouve à l'adresse 50 (ici on trouve test à l'adresse 50 et donc on renvoie 10)

    Donc maintenant j'obtient une erreur : Error [1131] type mismatch in assignment

    Donc je voudrais savoir comment faire pour faire marcher ma fonction sur C18?

    Je voit pas trop comment faire, j'ai essayé
    *pointeur = &buffeur il n'y a pas d'erreur mais il envoie 49 (l'adresse de buffeur)

    Je vous remercie d'avance

    -----

  2. Publicité
  3. 📣 Nouveau projet éditorial de Futura
    🔥🧠 Le Mag Futura est lancé, découvrez notre 1er magazine papier

    Une belle revue de plus de 200 pages et 4 dossiers scientifiques pour tout comprendre à la science qui fera le futur. Nous avons besoin de vous 🙏 pour nous aider à le lancer...

    👉 Je découvre le projet

    Quatre questions à explorer en 2022 :
    → Quels mystères nous cache encore la Lune 🌙 ?
    → Pourra-t-on bientôt tout guérir grâce aux gènes 👩‍⚕️?
    → Comment nourrir le monde sans le détruire 🌍 ?
    → L’intelligence artificielle peut-elle devenir vraiment intelligente 🤖 ?
  4. #2
    invite03481543

    Re : pointeur

    Citation Envoyé par Julien_B Voir le message
    Bonjour,

    J'ai un petit problème avec le compilateur C18, avec CC5 ma fonction marché correctement mais plus sur C18,

    Donc imaginons que j'ai deux variables :

    char Buffeur = 50; //Se trouve à l'adresse mémoire 49 (comment le sais-tu? ) 50 est le contenu pas l'adresse
    char test = 10; //Se trouve à l'adresse mémoire 50 (comment le sais-tu? ) idem
    char * pointeur; // On crée un pointeur vers un char

    sur CC5X je pouvais faire :

    pointeur = buffeur //Le pointeur vaut 50
    envoie (*pointeur) //Envoie la valeur de la variable qui se trouve à l'adresse 50 (ici on trouve test à l'adresse 50 et donc on renvoie 10)

    Donc maintenant j'obtient une erreur : Error [1131] type mismatch in assignment

    pas étonnant, il faut écrire:

    pointeur=&buffer; (maintenant pointeur contient l'adresse de buffer) il faut initialiser pointeur avec l'adresse de buffer
    *******************
    Dernière modification par HULK28 ; 13/01/2008 à 20h07.

  5. #3
    Julien_B

    Re : pointeur

    Donc pour les adresse je les voit en scrutant les variables dans MPLAB il me donne l'adresse de la variable.

    J'avais marqué que j'avais essayé :
    *pointeur = &buffeur il n'y a pas d'erreur mais il envoie 49 (l'adresse de buffeur)
    Je me suis trompé, c'est pointeur = &buffeur que j'ai essayé mais cela ne me donne pas le bon résultat, je m'explique :

    char buffeur = 50; //Se trouve à l'adresse mémoire 49
    char test = 10; //Se trouve à l'adresse mémoire 50
    char * pointeur; //pointeur mémoire

    Sur CC5X j'avais
    pointeur = buffeur //pointeur=50
    envoie (*pointeur) //Envoie la valeur de la variable qui se trouve à l'adresse 50 (ici on trouve test à l'adresse 50 et donc on renvoie 10)

    Si j'utilise :
    pointeur = &buffeur //pointeur=49
    envoie (*pointeur) //Envoie la valeur de la variable qui se trouve à l'adresse 49 (ici on trouve buffeur à l'adresse 49 et donc on renvoie 50 au lieu de 10)

    Donc ce que je voudrais faire c'est avoir dans pointeur la valeur de buffeur, et donc *pointeur = 10

    Mon but est de renvoyez sur la liaison série la valeur de la variable test qui se trouve à l'adresse buffeur.

    Si j'ai :
    test1 = 5 à l'adresse 15
    test2 = 10 à l'adresse 25
    test3 = 20 à l'adresse 26

    Si j'ai buffer qui vaut 15, on renvoie 5, si buffer vaut 25 je renvoie 10, si buffer vaut 26 je renvoie 20; ça me permet de récuperer la valeur des variables qui se trouvent en RAM.

  6. #4
    Julien_B

    Re : pointeur

    Pour information il fallait faire :

    pointeur = (char*)buffeur;
    Ce qui donne : pointeur = 50 (adresse pointée = valeur de buffeur) et *pointeur=10 (valeur qui se trouve à l'adresse 50, ici on trouve test à l'adresse 50 qui à comme valeur 10)

  7. A voir en vidéo sur Futura

Discussions similaires

  1. Onde et pointeur laser
    Par Azgalor dans le forum Physique
    Réponses: 4
    Dernier message: 03/11/2010, 16h11
  2. Module et pointeur Laser
    Par U=RI dans le forum Électronique
    Réponses: 1
    Dernier message: 30/06/2007, 15h08
  3. Notion de pointeur
    Par Archange21 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 31/12/2006, 11h21
  4. le pointeur de la souris a disparu !
    Par dan57 dans le forum Matériel - Hardware
    Réponses: 2
    Dernier message: 22/05/2006, 23h31
  5. alimentation pointeur
    Par oukivat dans le forum Électronique
    Réponses: 2
    Dernier message: 28/01/2005, 17h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.