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 :

Déreférencement d'un pointeur de type incomplet


Sujet :

C

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Par défaut Déreférencement d'un pointeur de type incomplet
    Bonjour,

    Je compile l'exemple de ARDrone 2.0 sur Code::Blocks et j'ai des erreur sur le fichier ihm_stages_o_gtk.h à partir de la ligne 147 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    video_decoder_config_t * dec_config;
        dec_config = (video_decoder_config_t *) cfg->last_decoded_frame_info;
        pixbuf_width = dec_config->src_picture->width;
        pixbuf_height = dec_config->src_picture->height;
        pixbuf_rowstride = dec_config->rowstride;
        pixbuf_data = (uint8_t*) in->buffers[in->indexBuffer];
    La structure video_decoder_config_t est définie dans le fichier video_stage_decoder.h (que j'ai bien sûr inclu à ihm_stages_o_gtk.h) :
    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
    typedef struct _video_decoder_config_t
    {
      // Input data : dst_picture->format
      // Output : all others
      vp_api_picture_t *src_picture;
      vp_api_picture_t *dst_picture;
      uint32_t num_frames;
      uint32_t num_picture_decoded;
      uint32_t rowstride;
      uint32_t bpp;
     
      // Internal datas
      bool_t vlibMustChangeFormat;
      vlib_stage_decoding_config_t *vlibConf;
      vp_api_io_data_t *vlibOut;
      mp4h264_config_t *mp4h264Conf;
      vp_api_io_data_t *mp4h264Out;
    } video_decoder_config_t;
    Et j'obtiens à la compilation les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c||In function ‘output_gtk_stage_transform’:|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|147|erreur: unknown type name ‘video_decoder_config_t’|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|148|erreur: ‘video_decoder_config_t’ undeclared (first use in this function)|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|148|note: each undeclared identifier is reported only once for each function it appears in|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|148|erreur: expected expression before ‘)’ token|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|149|erreur: request for member ‘src_picture’ in something not a structure or union|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|150|erreur: request for member ‘src_picture’ in something not a structure or union|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|151|erreur: request for member ‘rowstride’ in something not a structure or union|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c||In function ‘draw_trackers_stage_transform’:|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|336|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|337|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|341|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|389|erreur: déréférencement d'un pointeur de type incomplet|
    ||=== Build finished: 11 errors, 0 warnings ===|
    Je bloque totalement ... quelqu'un peux m'aider ?

    Merci d'avance !

  2. #2
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bonsoir
    "type incomplet", "unknown type" = il te manque des définitions de types.
    J'en déduis qu'il te manque un include.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 46
    Par défaut
    Bonjour, merci de répondre.

    J'ai ajouté au début du fichier ihm_stages_o_gtk.c :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef struct _video_decoder_config_t video_decoder_config_t;
    ce qui me corrige les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unknown type name ‘video_decoder_config_t’
    ‘video_decoder_config_t’ undeclared (first use in this function)
    Par contre j'ai toujours les erreurs suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c||In function ‘output_gtk_stage_transform’:|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|152|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|153|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|154|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c||In function ‘draw_trackers_stage_transform’:|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|339|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|340|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|344|erreur: déréférencement d'un pointeur de type incomplet|
    /home/theresis/Projet_ARDrone_Final/App/Navigation/Sources/ihm/ihm_stages_o_gtk.c|392|erreur: déréférencement d'un pointeur de type incomplet|
    ||=== Build finished: 7 errors, 0 warnings ===|

  4. #4
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    un type incomplet est un type obtenu par une forward declaration.

    Par exemple, si tu fais class c; "c" est un type incomplet, suffisant pour déclarer un pointeur ou une référence, mais pas pour manipuler une valeur de ce type.

    Il te faut la définition de la classe, que tu trouveras dans un en-tête.

    Trouve la classe manquante, puis inclue son en-tête, ou inclue des en-têtes au pif, jusqu'a trouver le bon.

    Si tu as un include de machinfwd.h ou fwdmachin.h, tente include machin.h et autre variantes.

Discussions similaires

  1. Réponses: 6
    Dernier message: 07/12/2012, 15h24
  2. déréférencement d'un pointeur de type incomplet
    Par ikuzar dans le forum Débuter
    Réponses: 1
    Dernier message: 07/09/2009, 18h37
  3. déréférencement d'un pointeur de type incomplet
    Par pauligno dans le forum Débuter
    Réponses: 8
    Dernier message: 10/12/2007, 10h50
  4. Renvoyer un pointeur de type structure
    Par bluecurve dans le forum C
    Réponses: 2
    Dernier message: 18/05/2007, 20h29
  5. [LG]Liste de pointeurs de type pointer
    Par tom_snop dans le forum Langage
    Réponses: 4
    Dernier message: 29/03/2005, 23h40

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