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

Linux Discussion :

warning: dereferencing type-punned pointer will break strict-aliasing rules


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 4
    Points : 6
    Points
    6
    Par défaut warning: dereferencing type-punned pointer will break strict-aliasing rules
    bonjour,

    gcc version 3.3.3

    je développe en c, et j'ai un petit souci:

    j'appelle dans mon programme C, une fonction d'une bibliothèque dynamique d'un client par l'intermédiaire du fichier d'entête C (.h) fourni par ce même client.

    A la compil j'ai ce warning: dereferencing type-punned pointer will break strict-aliasing rules
    que j'aimerais supprimés (je pense qu'il existe une option de compilation pour supprimer ce type de warning "-f????)
    mais avant j'aimerais avoir votre opinion, car j'ai peut être fait une erreur ...

    voici la description de la fonction dans le ".h"

    typedef unsigned short (AllocationMemoire) (void * * Zone,size_t taille);

    voici l'appel de la fonction dans mon prog.c

    char *Result=NULL;
    size_t Length=1024;
    unsigned short Erreur=0;

    Erreur = AllocationMemoire( (void * *) &Result, Length);

    C'est sur le passage du premier argument (Result) qu'il y a problème.
    Toutes vos idées seront les binvenus. C'est peut être évident pour vous.
    D'avance Merci

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    L'option -fno-strict-aliasing devrait faire disparaitre l'avertissement. Je ne vois pas bien pourquoi il se produit, malheureusement.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Pour moi un void * * Zone est un tableau de pointeur donc plutot de type :
    char **Result.
    Voir probablement sur le forum C plus a même de repondre je pense

  4. #4
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Citation Envoyé par MarcG
    Pour moi un void * * Zone est un tableau de pointeur donc plutot de type :
    char **Result.
    Au niveau du nombre d'indirections, c'est bon, il appelle la fonction avec &Result, donc un char ** qu'il caste en (void **).

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/02/2010, 01h15
  2. Réponses: 2
    Dernier message: 17/02/2009, 11h42
  3. Réponses: 8
    Dernier message: 25/11/2007, 20h30
  4. [MySQL] Ne pas afficher les Warnings du type mysql_connect, mysql_query,etc.
    Par brunoperel dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 04/09/2007, 16h42
  5. Warning sur type générique et tableau
    Par alex'l dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 27/07/2007, 21h46

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