You're array of Bin "Item" is of type Bin* (pointer to Bin), because it is an array... so your functions should expect a parameter that is of type Bin* instead of Bin[]. Bin[] seems to mean "array of Bin", which would be logical, but it's an invalid statement.

I just found out that there's nothing wrong with the syntax you're using, and that your mistake is actually the ';' after the function's definition header. After the declaration it's ok but not in the definition. Sorry about that :-)