2차원 배열을 억세스하는 포인터 여러 이용 사례
1999/04/06 조경민 coded by bro

2중 포인터를 이용한 가변 동적 2차원 배열 만들기


/*--------------------------------*\
        2D array with Pointer of Pointer
\*--------------------------------*/
#include <iostream.h>

#define         X  10
#define                Y  7

int main()
{
        int **p;

        p = new int*[Y] ;

        for(int y=0;y<Y;y++)
          p[y] = new int[X];

        for( y=0;y<Y;y++)
        {
         for(int x=0;x<X;x++)
         {
           p[y][x] = x+y;

                cout<<p[y][x]<<' ';
         }
                cout<<endl;
        }

        if(p)
                for( y=0;y<Y;y++)
                        if( p[y] )
                                delete[] p[y];

        delete[] p;

        return 1;
}

---------------------------------------------------
배열 포인터와 포인터 배열의 쓰임새 차이

벼열 포인터는 크기가 포인터 하나로 배열의 크기만큼 억세스
길이를미리잡은 포인터이다. 포인터 배열은 여러갯수의 포인터의
선형 배열이다. 전혀 다른 쓰임

#include <stdio.h>

void main()
{
        int x[10][5],i,c;
        int (*p)[5],*p2[5];

        for(i=0;i<10;i++)
                for(c=0;c<5;c++)
                 x[i][c] = i*10+c;

        p = new int[10][5];
        for(i=0;i<10;i++)
                for(c=0;c<5;c++)
                 p[i][c] = i*10+c;



        for(i=0;i<10;i++)
        {
                for(c=0;c<5;c++)
                        printf("%d ",x[i][c]);
                printf("\n");
        }
        for(i=0;i<10;i++)
        {
                for(c=0;c<5;c++)
                        printf("%d ",p[i][c]);
                printf("\n");
        }

}


-------------------------------------------------------
typedef를 쓴 배열 포인터를 이용한 2차원 배열 억세스 쓰임

#include <stdio.h>

typedef char row[10]; //row 는 char[10]의 크기를 의미한다.

void main()
{
        row a[10]; //10x10
        row *p;

        p = new row[50];

        for(int x=0;x<10;x++)
                for(int y=0;y<50;y++)
                        p[x][y] = x;

        printf("\n%d %d",sizeof(a),sizeof(*(p+1)));

                for( x=0;x<10;x++)
                for( y=0;y<50;y++)
                printf("%d ",p[x][y]);

}

'KB > C/C++' 카테고리의 다른 글

콤마에 대해서  (0) 2004.03.19
예전 콜링 컨벤션  (0) 2004.03.19
재미로 보는 C/C++언어  (0) 2004.03.19
생성자 계승  (0) 2004.03.19
반올림하기  (0) 2004.03.19

+ Recent posts