#include <stdio.h>
#include <stdlib.h>

void displayarray(int *x, int len) {
  int i;
  for (i = 0; i < len; i++) {
    if (i == 0)
      printf("%d", x[i]);
    else
      printf(" %d", x[i]);
  }
  printf("\n");
}

int main(int argc, char **argv) {
  int a1[] = {1, 2, 3, 4};
  int a2[4] = {2, 4, 6, 8};
  int *aptr[4] = {a1, &(a2[0])};
  int *p1, *p2, i;

  aptr[2] = (int *) malloc(8*sizeof(int));
  aptr[3] = aptr[2] + 4;

  for (i = 0; i < 4; i++) {
    (aptr[2])[i]  = (aptr[0])[i] + (aptr[1])[i];
    (aptr[3])[i] = *(aptr[2]+i) + 1;
  }
  displayarray(aptr[2], 8);

  p1 = *(aptr + 1);
  displayarray(p1, 4);

  p2 = p1 + 2;
  (*p2)++;
  displayarray(p1, 4);

  free(aptr[2]);
  return 0;
}