PRODUCT : C++ NUMBER : 803 VERSION : All OS : PC DOS DATE : October 19, 1993 PAGE : 1/??? TITLE : Dynamically Allocated Multidimensional Arrays #include #include #define ROW 10 #define COLUMN 15 typedef int ARRAYTYPE; typedef ARRAYTYPE * ARRAYTYPEPTR; /* Declare the 2D array as a pointer to a pointer to ARRAYTYPE */ /* Note there is no memory allocated for the array yet. */ ARRAYTYPEPTR *array; void main() { int i, j; /* First, allocate an array of pointers to ARRAYTYPE of ROW */ /* elements. Next, looping through the array of pointers, */ /* allocate arrays of ARRAYTYPE of COLUMN elements and assign */ /* them to the pointers. This assigns the necessary memory to */ /* the array, which you can then index via the [] operators. */ array = (ARRAYTYPEPTR *) malloc (ROW * sizeof(ARRAYTYPEPTR)); for (i = 0; i < ROW; i++) array[i] = (ARRAYTYPEPTR) malloc (COLUMN * sizeof (ARRAYTYPE)); /* Fill array with unique values */ for (i = 0; i < ROW; i++) for (j = 0; j < COLUMN; j++) array[i][j] = (COLUMN * i) + j; /* Print out array to make sure everything's OK */ PRODUCT : C++ NUMBER : 803 VERSION : All OS : PC DOS DATE : October 19, 1993 PAGE : 2/??? TITLE : Dynamically Allocated Multidimensional Arrays for (i = 0; i < ROW; i++) { for (j = 0; j < COLUMN; j++) printf("%4d",array[i][j]); putchar('\n'); } } DISCLAIMER: You have the right to use this technical information subject to the terms of the No-Nonsense License Statement that you received with the Borland product to which this information pertains.