nein, das brauchst Du nicht. In C können char[] und char* quasi synonym verwendet werden.
Wenn Du ein
//definiere ein Array mit 25 Zeichen (24 können für den String verwendet werden, 25. für \0)
char meinString[25] = "ich bin der Text";
// (fast) identisch ist:
char* meinString2 = "Ich bin der Text 2";
definierst, kannst Du einfach ein
Serial.println(meinString);
//bzw.
Serial.println(meinString2);
machen und der String wird ausgegeben. Dabei wird die Nullterminierung automatisch beachtet.
Dein ursprüngliches Problem war, das Du NUR den Adresspointer definiert hast, aber nicht den Speicherbereich, der dann die eigentlichen Daten aufnimmt.
Der Funktion dtostrf() ist das aber wurscht, die schreibt ab der Adresse in den Speicher und überschreibt dabei vermutlich andere Variablen Deines Programms die im Speicher hinter Deinem Pointer liegen.
Abgesehen davon, sehe ich gerade das Dein Sketch noch nicht mal compilieren dürfte, da Du hinter
Temp = 22.5,
ein Komma statt eines Semikolon steht.
Hast Du den originalen Sketch gepostet der nichts anzeigt, oder ist das nur ein Beispiel gewesen?
Mario.