Strukturen und Zeiger-Fehler: Dereferenzierung Zeiger auf unvollständigen Typ

ok, ich habe drei Strukturen:

struct rss_s {
    Radio_types device_type;  //Its device_type which is defined by the typedef above Radio_Types
    char * device_info;   //some thing about the radio NAV/COM/etc.
    char * device_model;      //the Manufactures part/model number.
    char * device_serial;     //the device's serial number..
    int power_48v;        //power to the unit..
    int power_400hz;
    int panel_lamps;      //turn off or on the Panel Lamps only
    void * radio_info;

    struct radio_s_C614L8
    {
        loopsw_614L8 loop_sw_614L8;  this is an emum
        modesw_614L8 mode_sw_614L8;  this is an emum
        int sw_band;
        int sw_bfo;
        int meter;
        tuner *Tuner;
        int tuners;
    };

    typedef struct tuner_s
    {
        char *device_name;      //OS NAME
        int frequency[tuned];
        int power;
        int dial_lamp;
        void * back_radio;      //back-link to radios[n]
        void * back_info;       //back-link to radio_xxxx
        int fd[];
    } tuner;

Ich initialisieren in der main.c

//Radio 614L8
static tuner tuner_C614L8[] = {{ .device_name = "/dev/TBD", }};
static struct radio_s_C614L8  radio_C614L8 = { .Tuner = &tuner_C614L8, .tuners =   DIM(tuner_C614L8) };

static struct rss_s radios[] = {
{ .device_type  = C614L8,
  .device_info  = "ADF",
  .device_model = "614L8",
  .device_serial = "8384",
  .radio_info = &radio_C614L8,},};

den oben genannten Werken mit Fehler....
aber wenn ich versuche zu initialisieren, die die oben genannten radio... in meinem init_C614L8.c
mit dem folgenden code bekomme ich einen Fehler...
Fehler: Dereferenzierung Zeiger auf unvollständige Art in den Zeilen 4 & 6

int init_C614L8( struct rss_s  * radios ){
int rw, i;
struct radio_s_614L8 * rad_info = radios -> radio_info;
tuner * this_tuner  = rad_info -> Tuner;
    //Now we will loop over the sub_devices....
for ( i = 0;  i < rad_info -> tuners; i++ ) {

Ich glaube, ich habe zu werfen etwas, aber nicht shure
Dank

Brauchen Sie wirklich, alle diese code? das kürzeste Programm notwendig, das problem zu reproduzieren.
wenn ich nicht zeigen Ihnen, meinen code und die Strukturen, wie Sie gehen, um einen intelligenten Kommentar.
Ich meinte es ist nicht kurz genug. Tun Sie wirklich brauchen, um die post alle Felder Namen wie power_400hz und modesw_614L8? Stellen Sie ein kurzes Programm, das problem zu reproduzieren. Wahrscheinlich finden Sie den Fehler, während dies zu tun.
Sie erkennen beide radio_s_C614L8 und tuner_ssind geschachtelte in rss_s, die keine Schließung } in den code geschrieben ? Richtig Einrücken von code gepostet wird dies:
Bitte nicht veröffentlichen C-code mit Leerzeichen um den Pfeil -> Betreiber. Es ist schlechtes benehmen, um Missbrauch der syntax wie. Ich kenne Sie schon gefragt worden, bevor Sie zum erstellen einer MCVE (so erstellen Sie eine Minimale, Vollständige und Überprüfbare Beispiel?) oder SSCCE (Kurze, eigenständige, Korrekte Beispiel), wenn Sie Fragen erstellen — ich weiß, da habe ich die Frage. Wenn wir nicht nehmen Sie den code in die Frage und führen Sie den compiler auf, es erhöht drastisch die Schwierigkeit, die Sie mit einer Antwort.

InformationsquelleAutor Phoenixcomm | 2014-05-19

Schreibe einen Kommentar