//In this code I create 3 pipes.//Since in the table 0 is STDIN 1 is STDOUT and 2 is STDERROR it will start assigning values //starting with 3.typedef int* my_type;my_type p[2];int t;for (t =0; t < 3; t++) { int pipenum[2]; if (pipe(pipenum) == -1) { perror("Failure of pipe"); } p[t] = pipenum; printf("P[%d][0] = %d and P[%d][1]= %d\n", t,p[t][0], t,p[t][1]);}printf("P[%d][0] = %d and P[%d][1]= %d\n", 1,p[1][0], 1,p[1][1]);//In the loop the values become//P[0][0] will be 3//P[0][1] will be 4//P[1][0] will be 5//P[1][1] will be 6//P[2][0] will be 7//P[2][1] will be 8//However if i printf immediately outside this function, lets say p[1][0] and p[1][1] it will say //the values are 7 and 8 instead of 5 and 6. Any idea how that can be?