Non hai capito, malloc ti serve per allocare la memoria dinamicamente, ovvero, ottenere un area di memoria dalle dimensioni determinate a runtime invece che in fase di compliazione come negli array.

Con i normali array la dimensione la scegli in fase di compilazione, con malloc la puoi scegliere a runtime.