포인터 배열 관계에 있어서 햇갈리는 부분을 테스트 해보았다.
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 |