Расположение в памяти статических переменных - PullRequest
0 голосов
/ 29 сентября 2019

Как статическая переменная "сохраняется" от одного вызова к другому?Использует ли он что-то вроде malloc, чтобы поместить его в память программы, или существует другой способ, которым оно сохраняется для всей программы для просмотра этой переменной, например:

static int counter = 4;

[similar to:]
int counter = malloc(sizeof(int));
counter = 4

1 Ответ

1 голос
/ 29 сентября 2019

Статические скалярные переменные (float, int, byte) хранятся в сегменте данных памяти.компилятор назначает адрес в этой области памяти, который выделяется программе при загрузке в память.другие области: стек (для передачи параметров в функции, методы) куча: динамическая память, используемая malloc, new.

https://en.wikipedia.org/wiki/Data_segment

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...