void input(char **arr)
{
        arr = (char**)malloc(sizeof(char*)*n);
        
        for(int i=0;i<n;i++){
                arr[i] = (char*)malloc(sizeof(char)*m);
                

                배열 초기화
}
void menu(char ***a)
{
        input(*a);
}
main(){
char **arr;

        menu(&arr);
        
        배열 출력.

}

위에 소스인데.. 함수를 이용해서 2차 동적배열을 만들고 싶어.

근데 배열출력부분에서 에러가 나더라고......왜그런건지...설명좀.ㅠㅠ

포인터가3개라서 좀 헷갈리는데.. 내생각을 말해보자면

2차배열 arr의 주소를 menu함수 매개변수로 전달하면

menu 함수는 3차포인터만 받으니까.   a의 값은 arr의 주소를 가진다. 즉 a = &arr 이가 된다?   
a가 가지고 있는 값은 arr의 주소, *a는 arr이 가르키는 값을 가르킴...//여기서 좀 헷갈림.

그다음.menu 함수 내부에서 받은 3차포인터 a를  input함수로 a가가리키는 2차포인터를 매개변수로 전달.  

input 함수내부에서 받은 2차포인터로 2차동적배열을 만든다.. 그러곤초기화 하고. main 함수에서 할당받은 2차배열을 사용한다..?..

근데 main에서 배열 출력할때 에러가 나길래..뭐가 문제인지 모르겠어...ㅠㅠ

내가 생각하고 있는 포인터 전달???과정이 맞는건지도 모르겠고..누가 설명좀.ㅠㅠ