char *[][] -> (void *) -> char* [][] 이렇게 캐스팅 바꾸는거에 대한건데



처음에는 char *[][] -> (void *) -> char*** 식으로 생각해서


char ***_data = (char ***)data; print(_data[j][i]);

이렇게 썼는데 보니까 배열은 포인터가 아니잖아요




근데 왜

char *[][]pd = (char * [][])p 

이게 아니라 


char *(*pd)[][] = (char *(*)[][])p;(*pd)[0][1] = "text"

이렇게 써야 되요??