문제 1

int main(void)
{
	int* arr1[5];
	int* arr2[3][5];

	int** parr1 = arr1;
	int* (*parr2) = arr2;
}

 

문제 2

#include <stdio.h>
void SimpleFuncOne(int* ptr1, int* ptr2);
void SimpleFuncTwo(int(*ptr3)[4], int(*ptr4)[4]);

int main(void)
{
	int arr1[3] = { 1,2,3 };
	int arr2[4] = { 1,2,3,4 };
	int arr3[3][4] = { {1,2,3,4},{5,6,7,8},{9,10,11,12} };
	int arr4[2][4] = { {1,2,3,4},{5,6,7,8} };


	SimpleFuncOne(arr1, arr2);
	SimpleFuncTwo(arr3, arr4);

	return 0;
}

void SimpleFuncOne(int* ptr1, int* ptr2)
{
	printf("%d \n", ptr1[0]);
	printf("%d \n", ptr2[1]);
}


void SimpleFuncTwo(int(*ptr3)[4], int(*ptr4)[4])
{
	printf("%d \n", ptr3[0][2]);
	printf("%d \n", ptr4[0][3]);
}

문제 3

#include <stdio.h>
void ComplexFuncOne(int** ptr1, int* (*ptr2)[5]);
void ComplexFuncTwo(int*** ptr3, int*** (*ptr4)[5]);

int main(void)
{
	int* arr1[3];
	int* arr2[3][5];
	int** arr3[5];
	int*** arr4[3][5];


	ComplexFuncOne(arr1, arr2);
	ComplexFuncTwo(arr3, arr4);

	return 0;
}

 

 

문제 4

3 2
6 4
5 2
1 1

문제 5

*(arr1[1][0]+1)
*(*(arr1[1]+0)+1)
*(*(*(arr1+1)+0)+1)
(*(*(arr1+1)+0))[1]
(*(arr1+1))[0][1]

+ Recent posts