int main(int argc, char *argv[]) { int *array; int width, height; int value; char **stringPtr; int **matrix; /* testing for part 1 */ printf("Testing Part 1\n"); width = 5; height = 6; array = create2DArray(height, width); printf("Store value 7 at [3,4].\n"); set2DElement(array, 3, 4, 7); value = get2DElement(array, 3, 4); printf("Retrieve value %d from [3,4]\n\n", value); free2DArray(array); /* testing for part 2 */ printf("Testing Part 2\n"); stringPtr = createStringArray(100); printf("Store string - fred\n"); setStringArray(stringPtr, 44, "fred"); printf("Store string - barney\n"); setStringArray(stringPtr, 80, "barney"); printf("Get string - %s\n", getStringArray(stringPtr, 44)); printf("Get string - %s\n", getStringArray(stringPtr, 80)); /* test with NULL string */ printf("Get string - %s\n\n", getStringArray(stringPtr, 3)); freeStringArray(stringPtr, 100); /* testing for part 3 */ printf("Testing Part 3\n"); matrix = createArray(100, 100); printf("Store 33 44 55\n"); matrix[22][76] = 33; matrix[83][29] = 44; matrix[99][65] = 55; printf("Retrieve %d %d %d\n", matrix[22][76], matrix[83][29], matrix[99][65]); freeArray(matrix, 100); return(1); }
static int allSurfStart () { noTri = 0; vertexcount = 0; /*coordinates of vertices of cube */ if (!(CUBE = (int **) create2DArray (8, 3, sizeof(int)))) return (FALSE); CUBE[0][0]= 0; CUBE[0][1] = 0; CUBE[0][2] = 0; /* 0 A */ CUBE[1][0]= 1; CUBE[1][1] = 0; CUBE[1][2] = 0; /* 1 B */ CUBE[2][0]= 0; CUBE[2][1] = 1; CUBE[2][2] = 0; /* 2 C */ CUBE[3][0]= 1; CUBE[3][1] = 1; CUBE[3][2] = 0; /* 3 D */ CUBE[4][0]= 0; CUBE[4][1] = 0; CUBE[4][2] = 1; /* 4 E */ CUBE[5][0]= 1; CUBE[5][1] = 0; CUBE[5][2] = 1; /* 5 F */ CUBE[6][0]= 0; CUBE[6][1] = 1; CUBE[6][2] = 1; /* 6 G */ CUBE[7][0]= 1; CUBE[7][1] = 1; CUBE[7][2] = 1; /* 7 H */ /* Apices of each tetrahedra */ if (!(TETAPICES = (int **) create2DArray (10, 4, sizeof(int)))) { allSurfFinish (); return (FALSE); } TETAPICES[0][0] = 3; TETAPICES[0][1] = 5; TETAPICES[0][2] = 6; TETAPICES[0][3] = 7; /* 0 V */ TETAPICES[1][0] = 0; TETAPICES[1][1] = 4; TETAPICES[1][2] = 5; TETAPICES[1][3] = 6; /* 1 W */ TETAPICES[2][0] = 0; TETAPICES[2][1] = 2; TETAPICES[2][2] = 3; TETAPICES[2][3] = 6; /* 2 X */ TETAPICES[3][0] = 0; TETAPICES[3][1] = 1; TETAPICES[3][2] = 3; TETAPICES[3][3] = 5; /* 3 Y */ TETAPICES[4][0] = 0; TETAPICES[4][1] = 3; TETAPICES[4][2] = 5; TETAPICES[4][3] = 6; /* 4 Z */ /*repeat for 2nd cube */ TETAPICES[5][0] = 0; TETAPICES[5][1] = 1; TETAPICES[5][2] = 2; TETAPICES[5][3] = 4; /* 5 V */ TETAPICES[6][0] = 1; TETAPICES[6][1] = 4; TETAPICES[6][2] = 5; TETAPICES[6][3] = 7; /* 6 W */ TETAPICES[7][0] = 1; TETAPICES[7][1] = 2; TETAPICES[7][2] = 3; TETAPICES[7][3] = 7; /* 7 X */ TETAPICES[8][0] = 2; TETAPICES[8][1] = 4; TETAPICES[8][2] = 6; TETAPICES[8][3] = 7; /* 8 Y */ TETAPICES[9][0] = 1; TETAPICES[9][1] = 2; TETAPICES[9][2] = 4; TETAPICES[9][3] = 7; /* 9 Z */ /* edges belonging to each tetrahedra */ if (!(TETLINES = (int **) create2DArray (10, 6, sizeof(int)))) { allSurfFinish (); return (FALSE); } TETLINES[0][0] = 17; TETLINES[0][1] = 13; TETLINES[0][2] = 12; TETLINES[0][3] = 9; TETLINES[0][4] = 5; TETLINES[0][5] = 6; /* 0 V */ TETLINES[1][0] = 16; TETLINES[1][1] = 15; TETLINES[1][2] = 12; TETLINES[1][3] = 8; TETLINES[1][4] = 7; TETLINES[1][5] = 11; /* 1 W */ TETLINES[2][0] = 15; TETLINES[2][1] = 13; TETLINES[2][2] = 14; TETLINES[2][3] = 10; TETLINES[2][4] = 2; TETLINES[2][5] = 3; /* 2 X */ TETLINES[3][0] = 14; TETLINES[3][1] = 16; TETLINES[3][2] = 17; TETLINES[3][3] = 0; TETLINES[3][4] = 4; TETLINES[3][5] = 1; /* 3 Y */ TETLINES[4][0] = 14; TETLINES[4][1] = 15; TETLINES[4][2] = 13; TETLINES[4][3] = 12; TETLINES[4][4] = 17; TETLINES[4][5] = 16; /* 4 Z */ /* repeat for 2nd cube */ TETLINES[5][0] = 18; TETLINES[5][1] = 29; TETLINES[5][2] = 21; TETLINES[5][3] = 31; TETLINES[5][4] = 30; TETLINES[5][5] = 34; /* 5 V */ TETLINES[6][0] = 22; TETLINES[6][1] = 25; TETLINES[6][2] = 24; TETLINES[6][3] = 31; TETLINES[6][4] = 32; TETLINES[6][5] = 35; /* 6 W */ TETLINES[7][0] = 19; TETLINES[7][1] = 20; TETLINES[7][2] = 23; TETLINES[7][3] = 30; TETLINES[7][4] = 32; TETLINES[7][5] = 33; /* 7 X */ TETLINES[8][0] = 26; TETLINES[8][1] = 27; TETLINES[8][2] = 28; TETLINES[8][3] = 35; TETLINES[8][4] = 34; TETLINES[8][5] = 33; /* 8 Y */ TETLINES[9][0] = 30; TETLINES[9][1] = 31; TETLINES[9][2] = 32; TETLINES[9][3] = 33; TETLINES[9][4] = 34; TETLINES[9][5] = 35; /* 9 Z */ /* Edges of all tetrahedra */ if (!(LINES = (int **) create2DArray (36, 2, sizeof(int)))) { allSurfFinish (); return (FALSE); } LINES[0][0] = 0; LINES[0][1] = 1; /* 0 AB */ LINES[1][0] = 1; LINES[1][1] = 3; /* 1 BD */ LINES[2][0] = 2; LINES[2][1] = 3; /* 2 CD */ LINES[3][0] = 0; LINES[3][1] = 2; /* 3 AC */ LINES[4][0] = 1; LINES[4][1] = 5; /* 4 BF */ LINES[5][0] = 3; LINES[5][1] = 7; /* 5 DH */ LINES[6][0] = 5; LINES[6][1] = 7; /* 6 FH */ LINES[7][0] = 4; LINES[7][1] = 5; /* 7 EF */ LINES[8][0] = 4; LINES[8][1] = 6; /* 8 EG */ LINES[9][0] = 6; LINES[9][1] = 7; /* 9 GH */ LINES[10][0]= 2; LINES[10][1]= 6; /* 10 CG */ LINES[11][0]= 0; LINES[11][1]= 4; /* 11 AE */ LINES[12][0]= 5; LINES[12][1]= 6; /* 12 FG */ LINES[13][0]= 3; LINES[13][1]= 6; /* 13 DG */ LINES[14][0]= 0; LINES[14][1]= 3; /* 14 AD */ LINES[15][0]= 0; LINES[15][1]= 6; /* 15 AG */ LINES[16][0]= 0; LINES[16][1]= 5; /* 16 AF */ LINES[17][0]= 3; LINES[17][1]= 5; /* 17 DF */ /*repeat for 2nd cube orientation*/ LINES[18][0]= 0; LINES[18][1]= 1; /* 0 AB */ LINES[19][0]= 1; LINES[19][1]= 3; /* 1 BD */ LINES[20][0]= 2; LINES[20][1]= 3; /* 2 CD */ LINES[21][0]= 0; LINES[21][1]= 2; /* 3 AC */ LINES[22][0]= 1; LINES[22][1]= 5; /* 4 BF */ LINES[23][0]= 3; LINES[23][1]= 7; /* 5 DH */ LINES[24][0]= 5; LINES[24][1]= 7; /* 6 FH */ LINES[25][0]= 4; LINES[25][1]= 5; /* 7 EF */ LINES[26][0]= 4; LINES[26][1]= 6; /* 8 EG */ LINES[27][0]= 6; LINES[27][1]= 7; /* 9 GH */ LINES[28][0]= 2; LINES[28][1]= 6; /* 10 CG */ LINES[29][0]= 0; LINES[29][1]= 4; /* 11 AE */ LINES[30][0]= 1; LINES[30][1]= 2; /* 12 BC */ LINES[31][0]= 1; LINES[31][1]= 4; /* 13 BE */ LINES[32][0]= 1; LINES[32][1]= 7; /* 14 BH */ LINES[33][0]= 2; LINES[33][1]= 7; /* 15 CH */ LINES[34][0]= 2; LINES[34][1]= 4; /* 16 CE */ LINES[35][0]= 4; LINES[35][1]= 7; /* 17 EH */ return (TRUE); }