C struct void* - Zeiger

Ich habe eine struct definiert als:

typedef struct {
   int type;
   void* info;
} Data;

und dann habe ich noch einige andere Strukturen, die ich zuordnen möchten, void* mithilfe der folgenden Funktion:

Data* insert_data(int t, void* s)
{
    Data * d = (Data*)malloc(sizeof(Data));
    d->type = t;
    d->info = s;

    return d;
}

struct {
   ...
} Struct#;

dann habe ich nur nennen

insert_data(1, variable_of_type_Struct#);

Wenn ich compile dieser gibt es eine Warnung

warning: assignment from incompatible pointer type

ich versucht, wandeln Sie die variable einfügen (void*), aber hat nicht funktioniert

insert_data(1, (void *) variable_of_type_Struct#);

Wie kann ich loswerden dieser Warnung?

Dank

wo genau ?
Bitte überprüfen Sie mein Beispiel-code.
Casting das Ergebnis malloc unnötig. Data * d = malloc(sizeof(Data)); würde ausreichen.
Ich habe das Gefühl dieser scharfe ' # ' - Zeichen in Ihrem code. Sie sind verbunden mit Makros nicht sicher sind, was machen Sie in Ihrem code.
Warum wurde dieses struct {...} Struct#; in deinem code? Ich bin nur neugierig.

InformationsquelleAutor Nitrate | 2012-04-25

Schreibe einen Kommentar