summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2014-07-22 20:58:55 -0600
committermo khan <mo@mokhan.ca>2014-07-22 20:58:55 -0600
commitffe37481d3af1797b0926fb48e42603ecf6146fe (patch)
tree3eaa06b2118c4436cca6dac8835199472145d4bb
parentfc26452c2dbb06a44042410250da4c7ff2cafb6b (diff)
add memory segments example.
-rw-r--r--memory_segments.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/memory_segments.c b/memory_segments.c
new file mode 100644
index 0000000..8718830
--- /dev/null
+++ b/memory_segments.c
@@ -0,0 +1,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;
+}