Zum Cast im Kontext von einem Arduino Sketch ist die Aussage
Und der Rückgabewert von malloc() wird für gewöhnlich nicht gecastet.
schlichtweg falsch. In C++ ist ein impliziter Cast wie
Code:
int* buf;
void *ptr;

buf = ptr;
nicht erlaubt (malloc gibt einen void* zurück). Und da der Sketch C++ Code ist, auch wenn Du im C Stil programmierst, ist das ein Fehler.

Wenn Du wirklich einen Wert in den Feldern stehen haben willst, mußt Du sie über eine Schleife initialisieren. Da führt kein Weg dran vorbei.