/** * Array in C * array_demo.c */ #include #include int main () { // array on the stack int i; int a[5]; for (i = 0; i < 5; i++) { a[i] = i * 10; } for (i = 0; i < 5; i++) { printf("%d at %p\n", a[i], &(a[i]) ); } // array on the heap int *b; b = malloc(5 * sizeof(int)); for (i = 0; i < 5; i++) { *(b+i) = i * 100; // b[i] = i*100; // equivalent } for (i = 0; i < 5; i++) { printf("%d at %p\n", *(b+i), b+i); // printf("%d at %p\n", *(b+i), &(b[i]) ); } free(b); long int*c; c = malloc(5 * sizeof(long int)); for (i = 0; i < 5; i++) { *(c+i) = i * 1000; } for (i = 0; i < 5; i++) { printf("%ld at %p\n", *(c+i), c+i); } printf( "opposites? %p %p\n", &*c, c ); free(c); return 0; }