포인터 배열 관계에 있어서 햇갈리는 부분을 테스트 해보았다.
int* arr[3];
위와 같은 포인터 타입의 배열에서 의문을 품었다.
배열에서 새로운 객체(or 배열)의 생성이 자유로이 될까?
만약 배열이 생성가능하면 2차원 배열로써 활용가능할까?
에 해당하는 것이다.
int _tmain(int argc, _TCHAR* argv[]) { int a = 1; int b = 2; int c = 3; int* arr[3]; arr[0] = new int[3]; arr[1] = &b; arr[2] = &c; arr[0][0] = 4; arr[0][1] = 5; arr[0][2] = 6; printf("%d\n", arr[0][2]); printf("%d\n", *arr[1]); printf("%d\n", *arr[2]); return 0; }
위의 코드는 정상 수행되는 코드로 결과 출력값은 다음과 같다.
※ 출력결과
6
2
3
즉, 배열에서 새로운 객체(or 배열)의 생성이 자유로이 되며,
포인터 배열에서 새로운 배열 할당시 2차원 배열로써 활용이 가능하다.
C와 C++ 알아나가면 알아나갈수록 유연하게 잘 설계되어 있는것 같다. ^^
'개발이야기 > C, C++' 카테고리의 다른 글
C언어 pthread 사용 방법 (0) | 2014.03.05 |
---|---|
C코드 메모리릭 잡기 (0) | 2012.07.18 |
부모 클래스의 기본생성자가 없을때 메모리 누수 현상 (2) | 2012.06.12 |
마방진 원리 및 문제 (4) | 2012.05.19 |
Mangled Name (0) | 2012.05.13 |