jeremy james
jeremy james

Reputation: 19

Iterator on dynamic array in a struct

How can I make an iterator over a dynamic array (in a struct)?

Upvotes: 0

Views: 374

Answers (1)

John Bollinger
John Bollinger

Reputation: 181034

Your dynamic array, as represented by type struct _Lista, does not contain "elements of any type". At least not directly. It contains only and exactly elements of type void *. Pretty much everything you've written will work if you change type iterator accordingly, to a double pointer:

typedef void **iterator;

Do note, however, that this iterator implementation has a severe flaw: it does not carry any information about the bounds of the list. That may be OK if you ensure that there is a sentinel value after the last valid element (and maybe before the first, too), but otherwise you'll need a more complex data structure than just one pointer.

Upvotes: 1

Related Questions