summaryrefslogtreecommitdiff
path: root/memory_segments.c
blob: 87188300cec78aa7aa500e35baa55f49119df9a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>

int global_var;
int global_initialized_var = 5;

void function()
{
  int stack_var;
  printf("the function's stack_var is at address 0x%p\n", &stack_var);
}

int main(int argc, const char *argv[])
{
  int stack_var;
  static int static_initialized_var = 5;
  static int static_var;
  int *heap_var_ptr;

  heap_var_ptr = (int *)malloc(4);
  printf("global_initialized_var is at address 0x%p\n", &global_initialized_var);
  printf("static_initialized_var is at address 0x%p\n\n", &static_initialized_var);

  printf("static_var is at address 0x%p\n", &static_var);
  printf("global_var is at address 0x%p\n", &global_var);

  printf("heap_var is at address 0x%p\n\n", heap_var_ptr);

  printf("stack_var is at address 0x%p\n", &stack_var);
  return 0;
}