2차원 배열을 동적으로 할당할려면?

익명 사용자의 이미지

문법이 생각이 안나서 그러는데요.

일차원 배열일 때는 int num[10];

num = (int *)malloc(sizeof(int)*10);

요렇게 하는거죠? 그럼 2차원 배열일 때도

마찬가지로 num으로 해주면 되나요? num이란게

포인터 상수인데... 음... 컴파일 하면 에러 나던데...

int num[10][10];

위를 malloc으로 메모리 할당 할려면 어떻게

해야하죠?

익명 사용자의 이미지

이렇게 하면 안될까요?

int **num;
int i;

num = (int **)malloc(sizeof(int)*10);

for(i = 0 ; i < 10 ; i++)
num[i] = (int *)malloc(sizeof(int)*10);

num[0][0] = 1;

익명 사용자의 이미지

>int **num;
>int i;
>num = (int **)malloc(sizeof(int)*10);

num = (int **)malloc(sizeof(int*)*10);

>for(i = 0 ; i < 10 ; i++)
> num[i] = (int *)malloc(sizeof(int)*10);