is
char* array[] = {"first","second","other one","last"};
an array of char* ?
the strings (array[0],...) can not be modified even with a cast to char*. where is the string putten on memory ?
can not be modified = "array[0][0] = 'a'
"; does not work.