Skrivet den 27 maj 2006, 18:17 av 0x05
Har en labb som gör mig lite förvirrad.
Från föregående labbar har jag gjort en enkellänkad ADT lista som nu ska utökas med följande funktion:
SlistNode SLISTsearch(Slist list, int (*cmp)(const void *key1, const void *key2));
den ska returnera adressen till aktuell listnod vid sökträff, om inte så returnerar den NULL. Det andra argumentet är en funktionspekare till en callbackfunktion som ska returnera 1 vid träff och 0 annars.
Strukturen ser ut på följande sätt:
struct List {
int size;
int (*match)(const void *key1, const void *key2);
void (*destroy)(void *data);
struct ListElmt *head;
struct ListElmt *tail;
};
Det jag undrar är, måste det inte finnas ett till argument i SLISTsearch som tar det man vill söka efter?
Har försökt att vrida och vända på det hela men fattar inte hur det annars ska gå till. Och varför ha int (*match)(const void *key1, const void *key2); i structen?
Callback funktionen ska väl inte behöva lagras? Eller är de det som är poängen.
Hehe, är helt förvirrad så alla förslag tas emot med öppna armar :p