TERWI:
Das mit den Vektoren check ich (noch) nicht ...
Ein Vektor ist eine Datenstruktur, die einem Array ähnelt, aber die Größe passt sich dynamisch an und man kann Elemente beliebig hinzufügen und entfernen. In C++ ist das Teil der Standard Template Library, aber diese ist in der Arduino IDE standardmäßig nicht enthalten. Wohl auch da sie mit dynamischem Speicher arbeitet. Wurde aber von Usern implementiert.
Ein Vektor hat im Hintergrund ein Array und wird mit einer einstellbaren Standardgröße initialisiert (da nimmt man was man ungefähr erwartet + etwas mehr). Wenn diese Größe erreicht ist, wird ein neues, größeres Array erstellt und das alte hinein kopiert. Das geschieht automatisch im Hintergrund. Damit ist man nicht auf eine Feste Größe beschränkt, aber erkauft sich das mit etwas Overhead. Im Gegensatz zu komplexeren Strukturen hält sich das aber in Grenzen.
Hier ist die Dokumentation der Standard C++ Version:
http://www.cplusplus.com/reference/vector/vector/
Bezüglich deiner Anweisung. Wenn du so ein einzelnes Struct erstellen willst, muss noch das NumSeq raus. Das brauchst du nur wenn so für das ganze Array auf einmal Speicher reservieren willst (Anzahl der Structs * Größe eines Structs). Dann musst du den Pointer aber auch einem Array zuweisen. Dessen Variable ist zwar auch ein Pointer auf das Struct, aber du musst irgendwann mal sowas machen:
CMD_Record CMD_Sequence[10];
Sowie ich das sehe bringst du da zwei Sachen durcheinander. Entweder du hast ein Array aus Structs. Dann musst du mit calloc den gesamten Speicher reservieren und den Pointer einem Array zuweisen. Oder du hast ein Array aus Pointer auf Structs. Dann musst du einmal Speicher für die Pointer allozieren und dann jedes Struct einzeln erstellen (so wie du es jetzt hast, aber ohne das "mal NumSeq"). Das wäre für dich wahrscheinlich praktischer, da die Structs dann irgendwo im Speicher liegen können und das Array kleiner ist (an Speicher, nicht an Länge).