코딩 -/C언어 (2) 썸네일형 리스트형 [C언어] 2차원 배열의 크기를 입력받아서 정하기 (2차원 배열의 동적할당) C언어로 배열을 다루다 보면 곤란한 상황에 놓일 때가 있습니다. 배열의 크기를 미리 지정해두고 실행하는 것이 아니라 프로그램을 실행한 후 사용자의 입력에 따라 배열의 크기를 정하고 싶을 경우에 아래처럼 실행하게 됩니다. int A, B; scanf("%d %d",&A,&B); int Arr[A][B]; 프로그램을 실행시켜보신 분들은 알겠지만 , 오류가 나신다는 것을 알 수 있습니다. 왜냐면 C언어에서 배열의 크기는 변수로 받아 지정할 수 없기 때문입니다. 그럼 프로그램을 실행시킨 뒤 사용자의 입력에 따라 , 그리고 경우에 따라 배열의 크기를 입력받은 크기대로 만들고 싶다면 어떻게 해야 할까요? 포인터와 malloc을 이용해야 합니다. malloc 이란 함수는 메모리를 프로그램 내에서 크기만큼 할당해주고 .. 2차원 배열의 동적할당 2차원 배열을 동적 할당하는 방법에 대해 알아보도록 하겠습니다. 메모리의 크기가 정해져있지 않고 두개의 숫자로 입력이 들어올 때를 기준으로 생각합니다. 입력에 5 5 등이 들어오는 방식입니다. 5 5를 입력으로 받았다면 5행 5열 3 7을 입력으로 받았다면 3행 7열 각 행과 열을 뜻합니다. 이는 입력으로 들어올 입력값이 몇개인지 미리 지정되어있지 않고, 입력에서 주어지는 값으로 동적 할당하여 세팅을 해야 하는 경우 필요합니다. 2차원 문자 배열의 동적 할당을 예로 설명하겠습니다. int A,B; scanf("%d %d",&A,&B); char **arr; //char 더블포인터 선언 arr = (char**)malloc(sizeof(char*)*A); //A칸 동적할당 for (int i=0;i 이전 1 다음