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 de compréhension


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut Question de compréhension
    Bonjour à tous,

    J'aimerais comprendre la différence entre et En effet, cela concerne la fonction minimum :
    si j'appelle ma fonction avec un pointeur, gcc me renvoie un warning du type : "fais gaffe , ton parametre c est un "int *", et toi tu lui donnes un "int" " ... mais bon ça reste un warning...

    Par contre si j 'appelle ma fonction avec un tableau , gcc me renvoie une erreur du type : " ta oublié ';' , ',' , ')' avant tableau"

    alors j'aimerais comprendre la différence... J'en appele à vos connaissances.

    Merci.

    Ci joint le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int minimum(int m,int []tableau){
      int compteur=tableau[0];
      int f=0;
      for(f;f<m;f++){
        if(compteur<tableau[f]){
          compteur=tableau[f];
        }
      }
      return compteur;
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    int minimum(int m,int *tableau){
      int compteur=tableau[0];
      int f=0;
      for(f;f<m;f++){
        if(compteur<tableau[f]){
          compteur=tableau[f];
        }
      }
      return compteur;
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir, la notation int []tableau n'existe pas et est une erreur de syntaxe. Un warning est une erreur qui aura très très très probablement lieu lors de l'exécution de ton programme, ce n'est donc pas rien! Pour résoudre ton problème, déclare ton tableau avec la notation tableau dans le prototype de la fonction, comme ca: int tableau[]

  3. #3
    Membre émérite
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Par défaut
    Je pense que tu t'es trompé, tu voulais sûrement mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    int tableau[]
    /* ou */
    int * tableau
    Dans le prototype d'une fonction, ces 2 écritures sont équivalentes.
    Dans la déclaration de variable, c'est autre chose.

    Pour la déclaration de variables on a :

    int * tableau -> Déclare un pointeur de type int
    int tableau[] = ... -> Déclare un tableau de type int avec un nombre de cases connu avec le nombre d'éléments qui initialise le tableau.

    Je tiens à dire qu'un tableau n'est pas un pointeur, et un pointeur n'est pas un tableau !

  4. #4
    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
    Et pour compléter ce que dit Pouet_forever :

    Dans le prototype d'une fonction, ces 2 écritures sont équivalentes et déclarent toutes deux un pointeur sur int (et non pas un tableau)

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 477
    Par défaut
    J'ajoute également que la notation « type[] variable » existe en Java mais pas en C. Attention, donc, à ne pas confondre les deux langages.

    En C, le concept de tableau est parfaitement reconnu par le compilateur, mais n'est pas considéré en soi comme un type de donnée. Celui-ci ne concerne que le contenu du tableau.

Discussions similaires

  1. Questions de compréhension DoEvents et Sendmessage
    Par Punkfloyd1967 dans le forum C#
    Réponses: 1
    Dernier message: 25/05/2008, 20h14
  2. [AJAX] Question de compréhension
    Par didirider dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 19/03/2008, 16h52
  3. [Débutant] Question de compréhension
    Par Invité2 dans le forum C++
    Réponses: 4
    Dernier message: 10/02/2008, 20h14
  4. Question de compréhension
    Par cassis2k dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2008, 15h37
  5. [VBA] question de compréhension
    Par dalmasma dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/07/2007, 19h12

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