Hello, 1) I am declaring a pointer to a string as Xdata Unsigned char *sTemperature [4] = {"NIL","25 ","30 ","37 "}; This is shown in the .lst file as a array occupying only 12 bytes where as it should take 16 bytes according to me (4 bytes for NULL characters also) Why is it so? Also if I give the statement: STemperature[2][2] = 'C'; 'C' is not appended after 25 in the program. What is wrong? 2) If I declare a array as: Unsigned char display[40]; Unsigned char sBlankString = " "; /* say a string of 40 blank characters */ And give a statement Strncpy(&display[400],sBlankString,strlen(sBlankString)); Shouldn't the compiler give a warning message as we are copying at display[400] where as the Display is defined only for 40 characters? Regards, Mohit