Das Char ist dann leer.
Das ist ein missverständlicher Ausdruck, bei dem sich (vermutlich nicht nur mir) die Nackenhaare sträuben.
ein Array von char wird auch gerne string oder c-string genannt, was allerdings nicht mit einem String Objekt verwechselt werden darf.
Ein char* ( Pointer, mit dem Sternchen !) ist die Adresse eines char,
und damit gegebenfalls auch die Anfangsadresse eines char - Arrays, und kann so meist genauso verwendet werden.
Jedenfalls ist in solch einem Text alles nach dem ersten Ende - '\0' -Zeichen undefiniert,
und wird von Funktionen die mit char* arbeiten, nicht mehr verwendet.
Wenn TXTdisp[0] den Wert 0 ( das gleiche wie '\0' ) behält, bleibt das Ding "leer", egal was in TXTdisp[1] und weiteren Bytes steht oder eingetragen wird..
Tip: am besten immer die index-Variable mit setzen, und nicht vergessen, vor einer Verwendung des char* an der richtigen Stelle die Ende-Kennung zu setzen.
const byte TXTLEN=20;
byte index:
char TXTdisp[TXTLEN+1]; // Platz für 20 Zeichen + Ende-Kennung
...
index = 0; // TXTdisp löschen
TXTdisp[index] = 0;
char c = 'X';
if (index < TXTLEN) TXTdisp[index++] = c; // Zeichen c in TXTdisp am Ende anfügen
TXTdisp[index] = 0; // und Endekennung neu setzen