Esto no se trata de malloc vs new, sino de "¿debería usar la asignación de almacenamiento dinámico en un sistema integrado, o no?" que es más una cuestión filosófica.
La administración de la memoria del montón es muy útil desde el punto de vista de un programador, sin embargo, en una aplicación integrada / en tiempo real, cuando falla una asignación, estás en problemas.
Si toda la memoria está preasignada (es decir, estáticamente), entonces puede probar que el software nunca se quedará sin memoria. No puedes probarlo cuando usas asignación dinámica. Si administra la memoria manualmente (lo cual es un dolor), también puede haber fugas de memoria, doble libertad y otros errores sofisticados. Además, dado que está utilizando un sistema operativo multitarea preferente, debe preguntarse si su asignador de memoria es seguro para subprocesos. Si su código utiliza muchas asignaciones, la sobrecarga puede ser considerable.
Fragmentación de la memoria también es un problema real en sistemas de larga duración. Y este es bastante sutil. Necesita un asignador diseñado para mitigar esto, pero solo funcionará si las asignaciones son lo suficientemente pequeñas.
Entonces ... es una compensación. Tienes que pensar en los detalles.