### Память процесса
Стандарт C не определяет, как должна быть организована память для запущенных программ, но типичный процесс, то есть запущенная программа, может выглядеть так
![Структура данных буферного кэша](https://whoisdeveloper.ru/static/img/pointers1.jpg)
В самом низу, есть код, который запускает процесс. Код - это данные, инструкции, которым должен следовать процессор, и это часть памяти процесса. Кроме того, данные, которые существуют на протяжении всего срока службы процесса. Когда вы объявляете глобальные переменные, они живут до тех пор, пока выполняется программа, и именно здесь они находятся в памяти. Некоторые из этих данных будут доступны только для чтения. В программе определены константы, которые нельзя изменить. Строковые литералы, обычно они неизменяемы, они хранятся в памяти, доступной только для чтения, и ваша программа может выйти из строя, если вы попытаетесь их изменить. Глобальные переменные, которые вы определяете сами, если они не объявлены const, являются изменяемыми, и вы можете записывать в них.