#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int *(*FF(int T[],int k))[2];
int main(){
int TAB[4][6];
int *(*(*a_1)(int [], int))[2]=FF+1;
int *(*a_2)[2]=FF(TAB[1],6)+2;
int **a_3=*FF(*TAB,0);
int *a_4=**FF(*TAB,0);
return 0;
}
since FF returns a pointer to an array of two pointers to integers, dereferencing the result here *FF(*TAB,0) should be the first pointer in the array of two int pointers, so why is a_3 a double pointer? the same with a_4 – dereferencing a double pointer should return a value (int) but is a pointer.
New contributor
user24998657 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.