1차원 배열을 동적할당하려면 malloc()를 한번만 사용하면 된다.
2차원 배열을 동적으로 할당하려면 malloc()을 여러번 사용해야한다.
int **array = null;
int height=8,width=6;
array = (int **) malloc( sizeof(int *)* height );
for( int i=0; i < height ; i++)
array[i] = (int *) malloc( sizeof(int)* width );
전체 소스로 보면..
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char *argv[])
{
int **array = NULL;
int HEIGHT = 5;
int WIDTH = 6;
//2차원 배열 생성 int array[6][5]
array = (int **) malloc( sizeof(int*)*HEIGHT );
for( int i=0; i<HEIGHT; i++) {
array[i] = (int *) malloc( sizeof(int)*WIDTH );
}
//임의의 수 할당
for( int i=0; i<HEIGHT; i++)
for( int j=0; j<WIDTH; j++)
array[i][j] = i*WIDTH + j + 1;
//2차원 배열 출력
for( int i=0; i<HEIGHT; i++){
for( int j=0; j<WIDTH; j++){
printf(" %2d",array[i][j]);
}
printf("\n");
}
return 0;
}
'c/c++' 카테고리의 다른 글
쓰레드를 이용한 행렬 곱연산 (0) | 2010.09.16 |
---|---|
c/c++ 2차원(이차원) 배열 동적할당 방법2 (0) | 2010.08.06 |
math.h 의 sqrt()를 사용하지 않고 제곱근 구하기 (0) | 2010.08.03 |
sin 그래프 (0) | 2010.07.30 |
중복없는 숫자 뽑기 (0) | 2010.07.29 |