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 :

Warning a la compilation


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 28
    Par défaut Warning a la compilation
    A votre bon coeur mesieur dame :-)
    Je suis en train de tenter de recuperer un bout de code en C qui fait une share memory pour que 2 prog python puissent echanger des variables.
    J'ai recuperer un prog mais il me met des Warning a la production de la librairie. (Je maitrise pas vraiment les pointeurs...)

    Ci dessous le Warning :

    ipcmem.c: In function ‘ipcmem_attach’:
    ipcmem.c:107: warning: cast to pointer from integer of different size
    Et le code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    static PyObject *ipcmem_attach(PyObject *self, PyObject *args)
    {
        int   shmid, addr, flags;
        void *ptr;
     
        if (!PyArg_ParseTuple(args, "iii", &shmid, &addr, &flags)) {
            return NULL;
        }
        ptr = shmat( shmid, (void *)addr, flags );
        if (!ptr)
    	    return ipcmem_error();
        return PyInt_FromLong( (long)ptr);
    }

    Merci pour votre aide

  2. #2
    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
    Bonjour et bienvenue.

    Merci d'utiliser les balises [code] et [/code] pour encadrer tes extraits de programmes lorsque tu postes.

    Le message en question signifie « Attention : transtypage vers un pointeur depuis un entier de taille différente ».

    En gros, c'est déjà pas bien propre de mélanger des types entiers et des pointeurs (qui contiennent des adresses mémoire) mais si, en plus, ils n'ont pas la même taille, tu risques des ennuis.

    On ne sait pas à quelle ligne correspond la ligne 107 dans ton extrait, mais il y a fort à parier que ce soit dû au fait que ta variable « addr » soit déclarée « int » au lieu de « void * ».

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 28
    Par défaut
    Ok desolé pour le balisage.

    La ligne 107 c'est la ligne :
    ptr = shmat( shmid, (void *)addr, flags );

    En fait ce prog je l'ai recupereé, et il tourne sur une autre machine.
    vu que j'y connais pas grand chose je posait la question
    mais le (void *) devant l'addr c'est pas justement pour caster le addr ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 28
    Par défaut
    Ben en tout cas avec ta modif ca a l'air de retirer le warning...
    Reste a voir si le prog fait toujours ce qu'il est censé faire :-)
    Merci

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Comment as-tu fais disparaitre le warning ?

  6. #6
    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
    Citation Envoyé par matafan Voir le message
    Comment as-tu fais disparaitre le warning ?
    Il vient de le dire : « avec ta modif… ». Il a déclaré addr en tant que void * et plus int.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/01/2010, 12h44
  2. warning a la compilation du projet
    Par skunkies dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/01/2009, 14h29
  3. Warning durant la compilation
    Par mommsse dans le forum Débuter
    Réponses: 2
    Dernier message: 24/11/2007, 00h52
  4. Les varags, warning a la compilation.
    Par red210 dans le forum C
    Réponses: 3
    Dernier message: 20/12/2005, 19h03
  5. [C#] Générer un warning utilisateur à la compilation
    Par Pete dans le forum Windows Forms
    Réponses: 2
    Dernier message: 17/12/2004, 18h04

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