Учитывая, что память разделена на четыре сегмента: данные, куча, стек и код, где находятся глобальные переменные, статические переменные, типы константных данных, локальные переменные (определенные и объявленные в функциях), переменные (в основной функции), указатели, а динамически выделенное пространство (используя malloc и calloc) хранится в памяти?
Я думаю, что они будут распределены следующим образом:
- Глобальные переменные ---→ данные
- Статические переменные ---→ данные
- Постоянные типы данных -→ код
- Локальные переменные (объявленные и определенные в функциях) ----→ stack
- Переменные, объявленные и определенные в основной функции -→ heap
- Указатели (например,
char *arr
,int *arr
) ---→ heap - Динамически распределяемое пространство (используя malloc и calloc) ----→ стек
Я имею в виду эти переменные только с точки зрения Си.
Пожалуйста, поправьте меня, если я ошибаюсь, поскольку я новичок в C.