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 :

Corrections d'avertissement (warnings) du compilation dans un code


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 14
    Par défaut Corrections d'avertissement (warnings) du compilation dans un code
    Salut, voilà j'ai deux warning mais je sais pas les résoudre j'ai passé du temps à essayer j'y arrive pas... merci d'avance ( je souligne les lignes en Warning).

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #include <stdio.h>
    #include <stdlib.h>
    #define Max 100
    
    
    void affichage(int NbLigne, int NbColonne, double *pMatrice)
    {
        int i,j;
    
        for(i=0;i<NbLigne;i++)
        {
            printf("|");
                for(j=0;j<NbColonne;j++)
                {
                    printf("%2.lf |",*(pMatrice+i+Max*j));
                 }
            printf("\n");
          }
    
    
    }
    
    
    
    void remplir_matrice( int *pNbLigne, int *pNbColonne, double *pMatrice)
    {
        int i,j;
    
       printf("Veuillez entrer la matrice caree de taille %dx%d \n", *pNbLigne, *pNbColonne);
    
        for(i=0;i<*pNbLigne;i++)
        {
            for(j=0;j<*pNbColonne;j++)
           {
               printf("M[%d][%d]\n",i,j);
               scanf("%2lf", pMatrice+i*Max+j);
            }
    
          }
    }
    
    
    
    int main()
    {
       int Nbligne, NbColonne;
       double Matrice[Max][Max];
       int *pNbligne, *pNbColonne, *pMatrice;
    
       pNbligne=&Nbligne;
       pNbColonne=&NbColonne;
       pMatrice=(int*)Matrice;
    
    
       FILE* fichier=NULL;
       fichier=fopen("Matrice.txt","w");
    
           if( fichier!=NULL)
           {
               do{
                       printf("Entrez une matrice caree svp \n\n");
                       printf("Entrez le nombre de lignes \n");
                       scanf("%d",pNbligne);
    
                       printf("Entrez le nombre de colonne\n")
                       scanf("%d",pNbColonne);
                    }while(*pNbligne!=*pNbColonne);
    
          pMatrice = malloc(Nbligne*sizeof(double));
    
                  if(pMatrice)
                  {
                    remplir_matrice(  pNbligne,  pNbColonne,  pMatrice);
                    affichage( Nbligne, NbColonne,  pMatrice);//warning passing argument 3 or affichage from incompatible type
                     free(pMatrice);
                   }
    
            fclose(fichier);
            }
    
        return 0;
    }

  2. #2
    Membre très actif

    Femme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    591
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 591
    Par défaut
    Bonjour,

    Le compilateur n'est pas content à cause du paramètre 3 (pMatrice) passé à la méthode affichage : void affichage(int NbLigne, int NbColonne, double *pMatrice)

    pMatrice est déclarer comme étant un int * , alors que affichage requière un double *.

    Le warning est justifié, car si sizeof(int) != sizeof(double), c'est certain que ça ne va pas marcher.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Daxmawale Voir le message
    Salut, voilà j'ai deux warning mais je sais pas les résoudre j'ai passé du temps à essayer j'y arrive pas... merci d'avance ( je souligne les lignes en Warning).

    Code c : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    #include <stdio.h>
    #include <stdlib.h>
    #define Max 100
    
    
    void affichage(int NbLigne, int NbColonne, double*pMatrice )
    {
        int i,j;
    
        for(i=0;i<NbLigne;i++)
        {
            printf("|");
                for(j=0;j<NbColonne;j++)
                {
                    printf("%2.lf |",*(pMatrice+i+Max*j));
                 }
            printf("\n");
          }
    
    
    }
    
    
    
    void remplir_matrice( int *pNbLigne, int *pNbColonne, double *pMatrice)
    {
        int i,j;
    
       printf("Veuillez entrer la matrice caree de taille %dx%d \n", *pNbLigne, *pNbColonne);
    
        for(i=0;i<*pNbLigne;i++)
        {
            for(j=0;j<*pNbColonne;j++)
           {
               printf("M[%d][%d]\n",i,j);
               scanf("%2lf", pMatrice+i*Max+j);
            }
    
          }
    }
    
    
    
    int main()
    {
       int Nbligne, NbColonne;
       double Matrice[Max][Max];
       int *pNbligne, *pNbColonne, *pMatrice;
    
       pNbligne=&Nbligne;
       pNbColonne=&NbColonne;
       pMatrice=(int*)Matrice;
    
    
       FILE* fichier=NULL;
       fichier=fopen("Matrice.txt","w");
    
           if( fichier!=NULL)
           {
               do{
                       printf("Entrez une matrice caree svp \n\n");
                       printf("Entrez le nombre de lignes \n");
                       scanf("%d",pNbligne);
    
                       printf("Entrez le nombre de colonne\n")
                       scanf("%d",pNbColonne);
                    }while(*pNbligne!=*pNbColonne);
    
          pMatrice = malloc(Nbligne*sizeof(double));
    
                  if(pMatrice)
                  {
    remplir_matrice(  pNbligne,  pNbColonne,  pMatrice);
                    affichage( Nbligne, NbColonne,  pMatrice);//warning passing argument 3 or affichage from incompatible type
                     free(pMatrice);
                   }
    
            fclose(fichier);
            }
    
        return 0;
    }
    Salut
    T'as passé combien de temps exactement ??? Erreurs en rouge dans ton code.
    Sinon concrètement elles servent à quoi les variables pNbligne, pNbColonne et pMatrice (que tu vas en plus ensuite allouer) ???

    Citation Envoyé par Daxmawale Voir le message
    Dîtes l’éditeur texte prend pas les espaces ? ( dsl je sais que c'est moche sans les espaces )
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 14
    Par défaut
    Merci pour la réponse mith06 et Sve@r.

    Le programme fonctionne très bien j'ai juste oublié de mettre l'espace entre double *p matrice ( car j'ai renommé mon pointeur) j'en suis désolé... mais dis pas que j'ai pas cherché. ( j'étais plus concentré sur mes procédures que sur mes déclarations une erreur que je referai pas )

    J'ai mis des pointeurs car le prof a insisté mais sinon sans j'y arrive très bien, je suis conscient qu'ils servent à pas grand choses dans ce programme...

    En tous cas merci à vous !

    Cordialement Dax

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Daxmawale Voir le message
    ...j'ai juste oublié de mettre l'espace entre double *p matrice ( car j'ai renommé mon pointeur) j'en suis désolé... mais dis pas que j'ai pas cherché. ( j'étais plus concentré sur mes procédures que sur mes déclarations une erreur que je referai pas )
    Hum, un double [][] (2D) n'est pas équivalent d'un double* (1D). Bon dans l'absolu on peut toujours convertir et dire que tab[x][y]=*(tab + x * nb_col + y) mais je ne vois rien de tout ça dans ton code...

    Citation Envoyé par Daxmawale Voir le message
    Le programme fonctionne très bien
    On verra ça à l'exécution...

    Citation Envoyé par Daxmawale Voir le message
    J'ai mis des pointeurs car le prof a insisté mais sinon sans j'y arrive très bien, je suis conscient qu'ils servent à pas grand choses dans ce programme...
    A mon avis, t'as pas dû bien comprendre les instructions du prof. Il a dû dire un truc ressemblant à "il faudra utiliser les pointeurs" dans le sens "il y aura des moments où ceux-ci seront obligatoires" mais ça ne veut pas dire qu'il faut en mettre de partout. Par ailleurs j'ai pas parlé des pointeurs mais des variables. Parce que si tu remplaces, dans ton main, pNbligne par &NbLignes tu as toujours des pointeurs mais tu as des variables inutiles en moins...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Polynésie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Février 2014
    Messages : 14
    Par défaut
    J'ai juste demandé de l'aide pour les deux warnings pas besoins de m'enfoncer
    Sinon je refais le programme, plus jolie ! avec du codage moins deg et sans erreurs.
    Si tu veux je t'envoie en mp mon nouveau prog, juste pour te montrer que ton aide m'a bien servi

    merci bien.

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 127
    Billets dans le blog
    149
    Par défaut
    Bonjour,

    Pourquoi ne pas envoyer le nouveau code ici, que cela inspire tous les futurs lecteurs ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. Instruction sur le type de compilation dans le code
    Par Third Joker dans le forum Programmation (La)TeX avancée
    Réponses: 4
    Dernier message: 25/10/2012, 18h10
  2. [AC-2007] Erreur de compilation dans un code qui pourtant fonctionne
    Par cslbcg dans le forum VBA Access
    Réponses: 4
    Dernier message: 06/11/2009, 23h11
  3. [Simulink][Débutante] Erreur de compilation dans un code
    Par karamellati dans le forum MATLAB
    Réponses: 4
    Dernier message: 30/05/2007, 11h47
  4. compiler dans kdevelop
    Par julien.63 dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 20/01/2006, 18h13
  5. [Servlet][Compilation] Erreur de compil dans code servlet
    Par gandalf_le_blanc dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 13/05/2004, 10h17

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