123456789101112
char** returnDoublePointer(int i) { char **pptr; pptr = new char*[i]; for(int j = 0;j < i;j++) { *(pptr + i) = new char[i]; } return pptr; }
123456789101112131415161718192021222324252627282930313233343536
typedef struct multarray_int_tag { unsigned rows; unsigned columns; int** data; } multarray_int_t; multarray_int_t createIntMultArray( unsigned rows, unsigned columns ) { unsigned cntr; multarray_int_t result; result.rows = rows; result.columns = columns; result.data = (int**)malloc( sizeof( int* ) * rows ); for (cntr = 0; cntr < columns; cntr++) result.data[ cntr ] = (int*)malloc( sizeof( int ) * columns ); return result; }; multarray_int_t freeIntMultArray( multarray_int_t a ) { unsigned cntr; for (cntr = 0; cntr < a.rows; cntr++) free( (void*)a.data[ cntr ] ); free( (void*)a.data ); a.rows = a.columns = 0; a.data = NULL; return a; };