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 :

Passage tableau en paramètre


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 64
    Par défaut Passage tableau en paramètre
    Bonjour,
    Je souhaite passer un tableau dans un paramètre pour une procédure.
    J'ai vu sur la FAQ du site qu'il fallait passer par les pointeurs.
    Je me suis aidé de l'exemple.

    Voici ma procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void groupe(int *ptr, size_t N, size_t M, char lettre, int col, int lig)
    {
                           size_t h, z;
     
    printf("%c",ptr[(col+1) * z + (lig)/2 * h]);
     
    printf("%c",ptr[(col) * z + (lig)/2 * h]);// Si je mets que ça, ça fonctionne
    }
    Voici comment je l'appelle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    char tab[30][30],lettre;
    int col = 0, lig = 1;
        size_t h, z;
        size_t N = sizeof(tab) / sizeof(tab[0]), M = sizeof(tab[0]) /sizeof(tab[0][0]);
     
     
     
    groupe(tab[col * z + (lig)/2*h],N,M,lettre,col,lig);
    }
    .

    Je n'ai pas d'erreur à la compilation mais j'ai une erreur comme quoi le programme a cessé de fonctionner

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    z ne semble pas initialisé.

    tab[30][30] est un tableau à 2 dimensions, mais en mémoire c'est un tableau de 30x30 int.
    Donc tab[col * z + (lig)/2*h] est l'élément à la "col * z + (lig)/2*h" position de ce tableau, donc ce n'est pas une adresse.

  3. #3
    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
    Citation Envoyé par fregolo52 Voir le message
    ....
    tab[30][30] est un tableau à 2 dimensions, mais en mémoire c'est un tableau de 30x30 int.
    Donc tab[col * z + (lig)/2*h] est l'élément à la "col * z + (lig)/2*h" position de ce tableau, donc ce n'est pas une adresse.
    Inexact.

    char tab[30][30] n'est pas un tableau de 900 int mais un tableau de 30 tableaux de 30 char.
    Par conséquent tab[i] est un tableau de 30 char et en tant que tableau, il est converti en l'adresse de son premier élément (sauf si il est opérande de sizeof ou de l'opérateur unaire &).

    Dans le contexte d'argument d'une fonction, tab[i] est donc bien une adresse

Discussions similaires

  1. Problème de passage de tableau en paramètre
    Par Tueur_a_gage dans le forum ASP
    Réponses: 9
    Dernier message: 16/11/2006, 20h09
  2. Réponses: 6
    Dernier message: 24/07/2006, 15h22
  3. Procédure stockée : passage d'un tableau en paramètres
    Par thomas_strass dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/05/2006, 14h52
  4. [JpGraph] Passage d'un tableau en paramètre dans une URL pour JPgraph
    Par crazydiver_e2 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/01/2006, 16h15
  5. Passage de tableau en paramètre...
    Par Doomi dans le forum C
    Réponses: 14
    Dernier message: 20/10/2005, 14h08

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