Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}