#include #include #include #define DELTA 33 int calls, seed=356; int sum_ds(int a){ int d=DELTA; calls++; return a+d+seed; } int main() { printf("calls has the value: %d and is at address 0x%08X\n",calls,&calls); printf("seed has the value: %d and is at address 0x%08X\n",seed,&seed); int num; int *ptr; int **handle; printf("------------------\n"); printf("num is at address 0x%08X and has the value: %d\n",&num,num); printf("ptr is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n ",&ptr,ptr,*ptr); printf("------------------\n"); /*printf("handle is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n ",&handle,handle,*handle);*/ num = 14; printf("num is at address 0x%08X and has the value: %d\n",&num,num); ptr = (int *)malloc(2 * sizeof(int)); printf("ptr is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n",&ptr,ptr,*ptr); handle = &ptr; /*printf("handle is at address 0x%08X\n",&handle);*/ /*printf("handle is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n ",&handle,handle,*handle);*/ *(*handle+0) = num; printf("------------------\n"); printf("This is a test to see what's *handle+0: 0x%08X\n",*handle+0); printf("This is a test to see what's *(*handle+0) value: %d and address 0x%08X\n",*(*handle+0),&*(*handle+0)); printf("------------------\n"); /*printf("handle is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n ",&handle,handle,*handle);*/ *(*handle+1) = num+1; /*printf("handle is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n ",&handle,handle+1,*handle+1);*/ printf("------------------\n"); printf("This is a test to see what's *handle+1: 0x%08X\n",*handle+1); printf("This is a test to see what's *(*handle+1) value: %d and address 0x%08X\n",*(*handle+1),&*(*handle+1)); printf("------------------\n"); *ptr = num-2; printf("ptr is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n",&ptr,ptr,*ptr); ptr = # printf("ptr is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n",&ptr,ptr,*ptr); *ptr = sum_ds(num-2); printf("ptr is at address 0x%08X, pointing to 0x%08X, and has the value: %d\n",&ptr,ptr,*ptr); printf("The value of num must be the same as pointed by prt %d", num); return 0; }