We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Dear Sir, I am declaring a pointer to a string as unsigned char *sTemperature [4] = {"NIL","25C ","30C ","37C "}; Note: I cannot use a 2-dimentional array here. Now I wish to write "25F" instead of "25C" i.e. I want to replace 'C' by 'F'. I am unable to do it. I tried to do this with statement STemperature[2][2] = 'F' but this doesn't work. How should I implement this. Regards, Mohit
Mohit, Your defintion: unsigned char *sTemperature [4] = {"NIL","25C ","30C ","37C "}; creates an array of pointers to string literals (or string constants). The rules of C state that a string literal is read-only and connot be modified. You have created an internal static array. You will need to create a new definition for sTemperature.
Here is a definition that will work. static unsigned char sTemp1[] = "NIL "; static unsigned char sTemp2[] = "25C "; static unsigned char sTemp3[] = "30C "; static unsigned char sTemp4[] = "37C "; unsigned char *sTemperature[] = {sTemp1,sTemp2,sTemp3,sTemp4};