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 :

Lecture de tableau par pointeur [D�butant(e)]


Sujet :

C

  1. #1
    Membre �clair� Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    F�vrier 2004
    Messages
    557
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Paaaaaa

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 557
    Par d�faut Lecture de tableau par pointeur
    Bonjour,

    Depuis quelques temps j'essai de me former � l'ANCI_C au C, http://www.linux-kheops.com/doc/ansi-c/node44.htm

    mais je but sur un exo concernant la lecture de tableau � l'aide de pointeurs
    En fait mon code est conforme au r�sultat de l'exercice, mais la compilation ne passe pas.
    J'obient ce message pour les line 7 et 8
    The declaration specifier is missing

    Les lignes 7 et 8
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    pdeb = &t[0];                                                 
    pfin = &t[N-1];
    Le code complet
    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
     
    #include <stdio.h>                                            
    #define N 10                                                  
    int t[N]={1,2,0,4,5,0,6,7,8,0};                               
    int *pdeb;                                                    
    int *pfin;                                                    
    int *p;                                                       
    pdeb = &t[0];                                                 
    pfin = &t[N-1];                                               
    /*-- fonction de lecture du tableau t */                      
    void li_tab() {                                               
      for ( p=pdeb; p<=pfin; p++)                                 
         if ( *p =='0')                                           
            printf("le %d ieme element du tableau est null\n",p); 
    }                                                             
    /*------ programme principal   --------*/                     
    main() {                                                      
    li_tab();
    J'ai bon relire reverifier je ne comprend pas ce qui cloche.
    C'est comme si le type de pdeb ou pfin n'�tait pas reconnu...
    Quelqu'un as peut-il m'expliquer ?

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Par d�faut
    D�j� ceci est faux :*p =='0'

    Bonne relecture

    Et sinon met tout ton code, �a sera plu simple � lire et � voir comment tu as �crit tout �a.

    De plus, tu as apparament tout d�clarer en variable globale, ce qui n'est pas fait dans l'exo corrig�.

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    De plus, qu'est-ce que c'est que toutes ces variables globales ?

    Edit: Tiens, la voil�, l'erreur: Les lignes 7 et 8 ne sont pas des d�clarations, mais des instructions.
    Et les instructions, ce n'est pas cens� exister � l'ext�rieur des fonctions...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre �clair� Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    F�vrier 2004
    Messages
    557
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Paaaaaa

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 557
    Par d�faut
    J'ai tenu compte de vos remarques (*p==0) ainsi que des variables qui �taient mise en globales.
    Avant de poster ce m�ssage j'ai fais ma compile est c'est OK !!!
    Par contre je comprend pas pourquoi.
    Est-ce le fait que mes pointeurs etaient dans la partie globale ?
    Voici la totalit� du code
    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
     
    #include <stdio.h>                                            
    #define N 10                                                  
    int t[N]={1,2,0,4,5,0,6,7,8,0};                               
    /*-- fonction de lecture du tableau t */                      
    void li_tab() {                                               
      int *pdeb;                                                  
      int *pfin;                                                  
      int *p;                                                     
      pdeb = &t[0];                                               
      pfin = &t[N-1];                                             
      for ( p=pdeb; p<=pfin; p++)                                 
         if ( *p==0)                                              
            printf("le %d ieme element du tableau est null\n",p); 
    }                                                                                                                      
    /*------ programme principal   --------*/                     
    main() {                                                      
    li_tab(); 
    }

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    C'est le fait que les lignes 7 et 8 �taient hors de toute fonction, alors que c'�taient des instruction et non des d�clarations.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    163
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 163
    Par d�faut
    Citation Envoy� par SPACHFR
    /*------ programme principal --------*/
    main() {
    li_tab();
    }
    [/code]
    Pourquoi j'ai peur quand je lis �a?

    Car le main retourne un int, � corriger et �crit dans la correction de l'exo en plus.

    Sinon, je ne saurais pas t'expliquer correctement, je laisse donc le soin � quelqu'un d'autre l'explication. Qui pour moi n'est pas forcement le fait qu'elle soit globale, mais plutot la mani�re que c'�tait d�clarer.

  7. #7
    Membre �clair� Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    F�vrier 2004
    Messages
    557
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Paaaaaa

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 557
    Par d�faut
    OK j'ai compris -> Pas d'instruction en dehors des fonctions ou du main.
    Pour int main() c'est moi qui est fait l'erreur c'est correct dans la correction de l'exo

    Reste un petit probl�me sur le r�sultat attendu, mais l� c'est de la logique je vais chercher
    Merci pour votre aide

  8. #8
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Citation Envoy� par SPACHFR
    Pas d'instruction en dehors des fonctions ou du main.
    Le main() est une fonction aussi, tu sais...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Modification du contenu d'un tableau par pointeur
    Par africanwinners dans le forum D�buter
    R�ponses: 2
    Dernier message: 25/08/2011, 19h27
  2. Passage de tableau � une fonction par pointeur
    Par progfou dans le forum C++
    R�ponses: 15
    Dernier message: 23/02/2007, 11h45
  3. Tri de tableau par pointeurs
    Par colocolo dans le forum Pascal
    R�ponses: 9
    Dernier message: 19/02/2007, 21h02
  4. Tableau Bidimensionel G�r� Par pointeurs
    Par boubyx.G dans le forum C++
    R�ponses: 19
    Dernier message: 31/01/2007, 20h13
  5. R�ponses: 8
    Dernier message: 10/03/2006, 17h28

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