반응형
/************************************************************** // 동적 배열은 크기가 얼마인지 모르는 경우에 유용하게 사용된다 !! //************************************************************** // 네이버 카페 --> 메뉴의 항목들을 관리 할경우 !! // 동적 배열을 이용한 함수들 작성 !! // 전체적인 카운트 관리가 필요 !! // 1) 동적 배열을 할당하는 함수 !! void main() { int * buf; InitArray( &buf, 10); } void InitArray( int ** buf , int size); { *buf = (int*)malloc(sizeof(int)*size); } // 2) 동적배열에 값을 저장하는 함수 --> 맨뒤에 저장 void Add( int * buf, int data ); { } //[10][20][30][40][50][60] // 3) 동적배열에 값을 지정한 위치에 저장하는 함수 void insert( int index, int data); // 1 , 10 // [1][10][10][10][2][3] void erase( int index); //0 //[0][0][0] //배열에 아무값도 남아 있지 않으면 동적 배열을 해제 !! */ #include#include // 동적배열을 이용한 함수들 작성 // 1) 동적 배열을 할당하는 함수 // 2) 동적배열에 값을 저장하는 함수 -> 맨뒤에 저장(리사이즈) // [10][20][30][40][50] // 3) 동적배열에 값을 지정한 위치에 저장하는 함수 // 4) 삭제 -> 배열에 아무값도 남아있지않으면 배열 해제 int cnt=0; // 1) 동적 배열을 할당하는 함수 void initArr(int *buf,int size) { if(size == 0) { puts("'0'으로는 할당할 수 없습니다"); return; } buf = (int *)realloc(buf,sizeof(int)*size); } // 2) 동적배열에 값을 저장하는 함수 -> 맨뒤에 저장(리사이즈) void add(int *buf, int data) { if(cnt < _msize(buf)/sizeof(int)) { buf[cnt] = data; cnt++; } else { buf = (int*)realloc(buf,_msize(buf)+sizeof(int)*100); //buf = (int*)realloc(buf,(cnt+1)*sizeof(int)); buf[cnt] = data; cnt++; } } // 3) 동적배열에 값을 지정한 위치에 저장하는 함수 void insert(int *buf, int index, int data) { int *temp = (int*)malloc(sizeof(int)*(cnt-index+1)); for(int i=0; i 배열에 아무값도 남아있지않으면 배열 해제 void erase(int index) { } void main() { int *buf=(int*)malloc(sizeof(int)); initArr(buf,4); printf("buf : %d\n", _msize(buf)); add(buf,1); add(buf,2); add(buf,3); add(buf,4); add(buf,5); add(buf,6); //insert(buf,0,10); for(int i=0; i<10; i++) printf("buf[%d] : %d\n",i,buf[i]); }
'자료구조' 카테고리의 다른 글
[자료구조] List (0) | 2014.12.01 |
---|---|
[자료구조] 배열을 추상화 한 클래스 (0) | 2014.12.01 |
[자료구조] C 언어 동적 배열 (0) | 2014.11.18 |
[자료구조] C 언어 정적배열 (0) | 2014.11.18 |
[자료구조] 포인터 연산과 다차원 배열 (0) | 2014.11.18 |