Со статическими строками, как в вашем примере, строка на самом деле не выделена. Пространство для него создается в самом исполняемом файле, и приведенное выше присваивание просто устанавливает «ptr» в адрес этого пространства.
Я не уверен, зависит ли это от реализации или нет, но строка обычно находится в защищенной памяти, поэтому вы не можете ее изменить ... только укажите на нее.
В UNIX вы можете увидеть статические строки в исполняемом файле, используя команду "strings" в исполняемом файле.