#include using namespace std ; void function1( int arr1[] ) { cout << "function1:" << arr1[0] << endl ; } void function2( int* arr1 ) { cout << "function2:" << arr1[0] << endl ; } void function3( int arr1[][3] ) { cout << "function3:" << arr1[0][0] << endl ; } void function4( int** arr1 ) { cout << "function4:" << arr1[0][0] << endl ; } int main() { //Single Dimensional Arrays int array1[10] = { 1,2,3,4,5,6,7,8,9,10} ; function1( array1 ) ; //Ok to pass an array to a pointer function2( array1 ) ; int* ptr1 = new int[10] ; ptr1[0] = 1 ; ptr1[1] = 2 ; //Ok to pass a pointer to an array function1( ptr1 ) ; function2( ptr1 ) ; //Two Dimensional Arrays int array2[2][3] = { {1,2,3} , {4,5,6} } ; int** TwoDimArray ; const int ROW_COUNT = 2 ; const int COL_COUNT = 3 ; TwoDimArray = (int**)malloc(sizeof(int*)*ROW_COUNT) ; for(int i1=0 , k1=1 ; i1