Set array to array passed as parameter in constructor
_MIDICommnads is declared like this: MIDICommand* _MIDICommands[];.


This is the major error. That is an incomplete array type. The number of elements (and storage) is unknown. 

To solve this you have decide on how the elements should be stored. Should the class allocate storage and copy the values given to the constructor or should a pointer to the vector be used.

One alternative is to use a template class and provide the max element size as a template class parameter.

Cheers!