#include <stdio.h>
#include <stdlib.h>
int nums_global[5] = {23, 24, 25, 26, 27};
int main(int argc, char * argv[]) {
int nums_local[5] = {23, 24, 25, 26, 27};
/*int howMany;
printf("How many numbers? ");
scanf("%d", &howMany);
int *nums2 = (int *) malloc(sizeof(int) * howMany);
int nums2[howMany]; // you can do this, but nums2 is on the stack (local memory). the stack is small.
*/
int *nums_dynamic = (int *) malloc(sizeof(int) * 5);
nums_dynamic[0] = 23; nums_dynamic[1] = 24; nums_dynamic[2] = 25; nums_dynamic[3] = 26; nums_dynamic[4] = 27;
printf("local/stack - %p\n", &(nums_local[0]));
int x;
printf("local/stack - %p\n", &x);
printf("dynamic/heap - %p\n", &(nums_dynamic[0]));
*num_dynamic = 30;
printf("local/stack - %p\n", &nums_dynamic);
printf("global/data - %p\n", &(nums_global[0]));
printf("main/code - %p\n", main);
return 0;
}