Float in Byte umwandeln

static byte buffer[4];

Dann sollte es theoretisch gehen. Das static sorgt dafür, dass der Speicher dauerhaft existiert und nicht am Ende der Funktion wieder freigegeben wird. Lokale static Variablen verhalten sich im Prinzip wie globale Variablen, aber sind nur lokal sichtbar.

Lokale nicht-static Variablen existieren nur solange du in der Funktion bist. Entsprechend kann man keine Zeiger darauf zurückgeben. Der Compiler erlaubt das natürlich und das Programm läuft auch. Aber wenn du dann außerhalb auf den Speicher über den Zeiger zugreifst steht da vielleicht schon wieder was anderes drin.