#include <stdio.h>
#include <stdlib.h>
int main() {
int size = 10;
int* p = (int*) malloc(sizeof(int) * size);
if (p == NULL) {
puts("Memory error");
return -1;
}
printf("first element: %p\n", p); // first element
printf("elements number: %d\n", p - p);
int *location = p + 1;
printf("second element: %p\n", location); // second element
printf("elements number: %d\n", location - p);
location += 1;
printf("third element: %p\n", location); // third element
printf("elements number: %d\n", location - p);
location += 1;
printf("fourth element: %p\n", location); // fourth element
printf("elements number: %d\n", location - p);
location = p + (size / 2);
if (size % 2 == 0) {
location--;
}
printf("middle element: %p\n", location); // middle element
printf("elements number: %d\n", location - p);
printf("total elements up to center: %d\n", location - p);
location = p + (size - 1);
printf("last element: %p\n", location); // last element
printf("elements number: %d\n", location - p);
free(p);
return 0;
}
/*
run:
first element: 0x2b2b72a0
elements number: 0
second element: 0x2b2b72a4
elements number: 1
third element: 0x2b2b72a8
elements number: 2
fourth element: 0x2b2b72ac
elements number: 3
middle element: 0x2b2b72b0
elements number: 4
total elements up to center: 4
last element: 0x2b2b72c4
elements number: 9
*/