Declaration of a Dynamic Array of Objects

malloc can create objects even though it technically shouldn't

malloc does not create objects. It allocates memory from the heap and nothing more. InvalidApple provided an example where "creating an object" is a simple enough operation that it is possible to overcome the difference.

Don't use malloc

On microcontrollers, there are dangers and limitions with malloc. If you feel you understand the pitfalls and you truly need dynamic allocation then malloc is a reasonable choice.