Function prototype (and its definition) should have parameters in form: return_type function_name(type1 name1)l
In your case: return_type = void function_name = AddItem type = Item* (as array parameter without fixed size would decay to pointer anyway) name = shoppingCart
So it would be void AddItem(Item* shoppingCart)
You call function as function_name(argument_name)
In your case: function_name = AddItem argument_name = shoppingCart
So it would be AddItem(shoppingCart)