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 :

Fonction qui utilise un pointeur de deux dimensions comme paramètre


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut Fonction qui utilise un pointeur de deux dimensions comme paramètre
    Salut tout le monde,

    je dois effectuer le produit de deux matrice dynamiques, pour cela j'ai créer deux variables de type int** et j'ai alloué la mémoire en fonction de ce que choisit l'utilisateur comme rang de matrice, tout marche a merveille, pour essayer de maitriser ce qu'est une fonction, j'ai essayer de créer une fonction qui s'occupe de la saisie pour ne pas écrire le même code a chaque fois que je veux saisir les éléments d'une matrice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void saisie(int*** T,int nl,int nc)
    {
        int i,j;
        for(i=0;i<nl;i++)
            for(j=0;j<nc;j++)
            {
                printf("Donnez la valeur A[%d][%d] : ",i + 1,j + 1);
                scanf("%d",&T[i][j]);
            }
    }
    codeblocks me donner un Warning à la ligne de scanf : int format, pointer argument

    j'ai exécuté et ça marche a merveille, mais comme je cherche a maitriser nanotion de pointeur a 2 dimensions j'aimerais bien faire disparaitre le Warning

    Merci d'avance !

  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
    Le warning signifie que, le format indiquant un argument du type entier, on attend pour l'argument correspondant une valeur du type int *.
    Or l'argument est &T[i][j]. Comme T est int***, T[i] est int** et T[i][j] est int *. Par conséquent &T[i][j] est int**, adresse d'un pointeur sur int et non adresse de int.

    Cette écriture indique une confusion quelque part et il faudrait connaitre pour la préciser la séquence d'appel de la fonction, y compris la définition de ce qui est passé en premier argument de la fonction.

    Il n'y a pas de notion de pointeur à deux dimensions. Par contre, on peut parler de tableau à deux dimensions. Si c'est le cas ici, il n'y a pas de raison pour avoir un argument du type int***.
    - Si le tableau Mat qui sera utilisé lors de l'appel est construit comme un tableau de pointeurs, chaque pointeur pointant sur un tableau de int, donc Mat est du type int**, l'argument doit être du type int ** T et la fonction appelée par saisie(Mat,....)
    - Si le tableau Mat qui sera utilisé lors de l'appel est construit comme un véritable tableau à deux dimensions, par exemple int Mat[....][....], alors, le paramètre int*** ou int ** est très très probablement faux.

  3. #3
    Membre averti
    Inscrit en
    Février 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Février 2009
    Messages : 26
    Par défaut Merci infiniment !!
    Merci infiniment, vous faites un merveilleux professeur =3

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/11/2007, 19h36
  2. Fonction qui renvoie un pointeur de fonction
    Par RaphAstronome dans le forum C++
    Réponses: 11
    Dernier message: 20/08/2006, 14h06
  3. Fonction qui rend un pointeur
    Par WaM dans le forum C
    Réponses: 6
    Dernier message: 20/05/2006, 19h31
  4. Réponses: 17
    Dernier message: 24/03/2005, 12h24
  5. fonction qui retourne un pointeur
    Par sorari dans le forum C++
    Réponses: 6
    Dernier message: 16/03/2005, 21h23

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