반응형
//*************************************************************
// 포인터 배열
//*************************************************************
// --> 배열의 원소로 포인터를 갖는 배열 !!
//		[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

+ Recent posts