반응형
//************************************************************* // 포인터 배열 //************************************************************* // --> 배열의 원소로 포인터를 갖는 배열 !! // [10][20][30][0][0] => 일반 배열은 실제 값을 갖는다 !! //************************************************************* // 포인터 4*5 = 20byte // [ ][ ][ ][ ] // //************************************************************* #include#include void foo(int** Array) { int no1 = 10,no2 =20; Array[0] = (int*)malloc(sizeof(int)); Array[1] = (int*)malloc(sizeof(int)); *Array[0] = 10; *Array[1] = 20; } void insert(int** Array,int index,int value) { if(Array[index] != NULL) { puts("쓰고있는 공간"); } else { Array[index] =(int*)malloc(sizeof(int)); *Array[index] = value; } } void print(int** Array) { int i; for(i=0;i<5;i++) { if(Array[i] != NULL) printf("%d ",*Array[i]); else printf("[ ] "); } puts(""); } // 배열과 인덱스를 전달 받아서 인덱스를 삭제하는 함수 void del(int **Array,int index) { if(Array[index] != NULL) { free(Array[index]); Array[index] = NULL; } } void print2array(int* (*Array)[4]) { Array[1][2] =(int*)malloc(sizeof(int)); // index 이용한 방법 *Array[1][2] = 10; // 포인터를 이용한 방법 **(*(Array+1)+2) = 10; } void print2(int* (*Array)[4]) { int i; for(i=0;i<5;i++) { if(Array[i] != NULL) printf("%d ",*Array[i]); else printf("[ ] "); } void main() { int* Array2[3][4] = {NULL}; int* Array[5]={NULL}; //int가 5개 모여있는 배열 /*insert(Array,0,10); print(Array); insert(Array,0,20); print(Array);*/ print2array(Array2); print(Array2); /*foo(Array); print(Array); del(Array,0); print(Array); del(Array,1); print(Array);*/ }
'C, C++' 카테고리의 다른 글
[C] 문자열과 배열 (0) | 2014.11.18 |
---|---|
[C] 배열의 개념 (0) | 2014.11.18 |
[C] 동적 배열 사용 예!! (0) | 2014.11.18 |
[C] 동적메모리와 포인터 (0) | 2014.11.18 |
[C] 포인터 사용하기 (0) | 2014.11.18 |