Gdzie w pamięci są moje zmienne przechowywane w C?
Biorąc pod uwagę, że pamięć jest podzielona na cztery segmenty: dane, sterty, stos i kod, gdzie znajdują się zmienne globalne, zmienne statyczne, stałe typy danych, zmienne lokalne (zdefiniowane i zadeklarowane w funkcjach), zmienne (w funkcji głównej), wskaźniki a dynamicznie przydzielana przestrzeń (za pomocą malloc i calloc) jest zapisywana w pamięci?
Myślę, że zostaną one przydzielone w następujący sposób:
Zmienne globalne -------> daneZmienne statyczne -------> daneStałe typy danych -----> kodZmienne lokalne (zadeklarowane i zdefiniowane w funkcjach) --------> stosZmienne zadeklarowane i zdefiniowane w głównej funkcji -----> stertyWskaźniki (na przykładchar *arr
, int *arr
) -------> kupaDynamicznie przydzielane miejsce (przy użyciu malloc i calloc) --------> stosMam na myśli te zmienne tylko z perspektywy C.
Popraw mnie, jeśli się mylę, ponieważ jestem nowy w C.