hlist_t hlist[4];
int hlist_init (hlist_t **hlist) {
int i;
for (i = 0; i < 4 ; i++) {
INIT_HLIST_HEAD (hlist [i]);
}
return 1;
}
int main() {
hlist_init (&hlist);
return 0;
}
Ich habe Code wie folgt, aber es funktioniert nicht. Parameter als * hlist [] funktioniert auch nicht. Wie soll ich damit umgehen? und wie ** hlist und * hlist [] ist anders?Wie mehrere Listen (hlist) als Funktionsargumente übergeben werden C
unten ist die Fehlermeldung des Codes. /media/hdd1/tcn/lbtest/main.c:20:5: Warnung: Übergabe von Argument 1 von 'hlist_init' aus inkompatiblen Zeigertyp [standardmäßig aktiviert] /media/hdd1/tcn/lbtest/main.c: 6: 5: hinweis: erwartet 'struct hlist_t **', aber argument ist vom typ 'struct hlist_t (*) [4]'
Wie funktioniert es "nicht", was ist der Fehler, Details? – fluter
'hlist_t ** hlist' ist ein Zeiger auf den Zeiger auf' hlist_t' und 'hlist_t * hlist []' ist eine nicht identifizierte Länge des Arrays von Zeiger auf 'hlist_t'. Sie werden als Funktionsargument keinen Unterschied machen, da die Array-Deklaration im Funktionsparameter in Zeiger auf ihre Elemente konvertiert wird. – MikeCAT
Bitte veröffentlichen Sie ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve). – MikeCAT