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 :

Tableau global [Débutant(e)]


Sujet :

C

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut Tableau global
    Bonjour, je voudrais savoir s'il est possible de définir un tableau comme on le ferait pour une variable globale, c'est à dire au début de fichier en dehors de toute fonction.

    Par exemple :
    int M[4];

    afin de pouvoir l'utiliser dans "main" et d'avoir plusieurs fonctions qui modifient ce tableau.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    int M[4];
     
    main()
    {
    //on initialise M[4]
    //un petit calcul sur M[0]++;
    fonction_1() // une fonction qui agit sur M
    fonction_2(k) // une autre fonction qui agit sur M
    }
    avec par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    fonction()
    {M[0]=M[1];}
     
    fonction_2(k)
    {M[0]=M[0]+k}
    Pour mon problème: mes fonctions ne semblent pas affecter le tableau M, il reste constant...

    Quelqu'un a une solution ? 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
    On peut, mais ce n'est pas une bonne habitude à prendre. Si une fonction a besoin d'informations pour faire son travail, il faut la lui passer en paramètre, pas en global.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int main(void)
    {
    int M[4];
    //on initialise M[4]
    //un petit calcul sur M[0]++;
    fonction_1(M) // une fonction qui agit sur M
    fonction_2(M,k) // une autre fonction qui agit sur M
    }
     
    fonction_1(int m[])
    {m[0]=m[1];}
     
    fonction_2(int m[], int k)
    {m[0]=m[0]+k;}

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    D'accord, j'avais pensé à ça d'abord pour me simplifier le travail mais je n'en étais pas sûr. Donc je peux mettre un tableau en argument, mais comment se débrouille-t-on avec la taille du tableau ? la fonction s'en fiche ?

    Je compile sous Visual Studio 9 Express, cela est-il aussi valable ?

    Merci.

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par dijoo Voir le message
    D'accord, j'avais pensé à ça d'abord pour me simplifier le travail mais je n'en étais pas sûr. Donc je peux mettre un tableau en argument, mais comment se débrouille-t-on avec la taille du tableau ? la fonction s'en fiche ?

    Je compile sous Visual Studio 9 Express, cela est-il aussi valable ?

    Merci.
    Pour la taille du tableau, on la passe à part à la fonction sous forme d'une 2e argument. Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void fonction(int *tab, size_t taille);
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    Merci, je vais essayer !

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

Discussions similaires

  1. Tableau global après requête ?
    Par RudyWI dans le forum IHM
    Réponses: 2
    Dernier message: 28/04/2008, 09h16
  2. Help prob de declaration de tableau global
    Par JeFF Boss dans le forum C++
    Réponses: 4
    Dernier message: 11/04/2007, 12h14
  3. [XML] [EXPAT] Parsing XML et tableau global
    Par GLDavid dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/02/2006, 12h31
  4. tableau global - d'une fenêtre à l'autre
    Par grinder59 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/02/2006, 10h50

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