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 );
이런식으로 동적할당 하면 malloc를 height만큼 호출하기 때문에 행과 열이 나누어 진다.
memset으로 한번에 값을 지정할 수도 없고
할당된 메모리를 해제할경우 for문으로 height번만큼 해제해줘야 한다.
int height=8,width=6;
array = (int **) malloc( sizeof(int *)* height);
array[0] = (int *) malloc( sizeof(int) * width*height );
for( int i=1; i< height ; i++)
array[i] = array[ 0 ] + i*width;
조금더 고쳐보면..
int height=8,width=6;
array = (int **) malloc( sizeof(int *)* height);
array[0] = (int *) malloc( sizeof(int) * width*height );
for( int i=1; i< height ; i++)
array[i] = array[ i-1 ] + width;
'c/c++' 카테고리의 다른 글
Console API를 이용하여 더블버퍼링 (0) | 2011.07.14 |
---|---|
쓰레드를 이용한 행렬 곱연산 (0) | 2010.09.16 |
c언어 2차원(이차원) 배열 동적 할당 방법 (0) | 2010.08.03 |
math.h 의 sqrt()를 사용하지 않고 제곱근 구하기 (0) | 2010.08.03 |
sin 그래프 (0) | 2010.07.30 |