Чтобы сделать это, вам нужно использовать массив символов, чтобы у вас действительно было некоторое пространство для записи во время выполнения для изменения:
char string_labels[][20] = { "one", "two", "three", "four", "five" };
void myFunction(void)
{
/* Printing works like before (could be improved, '5' is nasty). */
for(i=0; i < 5; i++)
{
printf("%s\n", string_labels[i]);
}
/* Now, modifying works too (could be improved, use snprintf() for instance. */
sprintf(string_labels[0], "xxx");
}