A few clues....

array[i] = *(array + i)

try sending an array of derived to a function expecting an array of base. What happens? Can you work out why?