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 :

pointeur sur un element d'un tableau


Sujet :

C

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut pointeur sur un element d'un tableau
    bonjour,
    dans mon main.c j'inclus une fonction puis je crée un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include "essai.h"
     
    double X[2]={0.3,0.7}; 
    essai(X[0]);
    Cette fonction est definie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    essai(double *A)
    {
        if (A<0.5)
            printf("%g est plus petit que 0.5",A);
    }

    Il n'accepte pas cette fonction. Puis-je faire un pointeur sur un élément du tableau? dans le cas positif pourquoi cette fonction ne marche pas?
    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 923
    Points
    17 923
    Billets dans le blog
    2
    Par défaut
    ben tu définis une fonction avec un pointeur, et tu l'appelles en lui passant une valeur !!!!

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 42
    Points
    42
    Par défaut
    oups pardon,
    J'ai oublié l'* devant le A. Kharg

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    Je dirais plutot que l'étoile est en trop

  5. #5
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    Voici le code exact:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include "essai.h"
     
    double X[2]={0.3,0.7}; 
    essai(X[0]);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    essai(double A)
    {
        if (A<0.5)
            printf("%g est plus petit que 0.5",A);
    }
    tu avais un étoile en trop.
    En effet, tu lui passes une valeur comme argument, alors que ta fonction demandait un pointeur.

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 723
    Points
    5 723
    Par défaut
    Citation Envoyé par kharg Voir le message
    bonjour,
    dans mon main.c j'inclus une fonction puis je crée un tableau:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include "essai.h"
     
    double X[2]={0.3,0.7}; 
    essai(X[0]);
    Cette fonction est definie:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    essai(double *A)
    {
        if (A<0.5)
            printf("%g est plus petit que 0.5",A);
    }

    Il n'accepte pas cette fonction. Puis-je faire un pointeur sur un élément du tableau? dans le cas positif pourquoi cette fonction ne marche pas?
    Merci
    Il(le compilateur) n'accepte pas cette fonction car X[0] n'est pas du même type que l'argument A.

    X[0] est de type double
    essai attends un double*

    A<0.5 ne compare pas rien du tout. (A n'est pas de type double)

    *A<0.5 ok l'étoile permet de déférencer le pointeur est désigne la variable donc du bon type


    pour passer un argument par adresse il faut rajouter le & ce qui donnerait &X[0] dans ton cas

Discussions similaires

  1. Réponses: 13
    Dernier message: 18/01/2014, 13h12
  2. Réponses: 1
    Dernier message: 09/07/2006, 23h39
  3. Tableau de pointeurs sur objets
    Par bassim dans le forum C++
    Réponses: 11
    Dernier message: 13/12/2005, 19h45
  4. Réponses: 1
    Dernier message: 26/10/2005, 09h15
  5. Références et pointeurs sur un tableau
    Par smag dans le forum C++
    Réponses: 2
    Dernier message: 01/03/2005, 20h29

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