177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid testBrackets(int* ar, int len) { 277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int i; 377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int errors = 0; 477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (i = 0; i < len; i++) { 577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao ar[i] = i; 677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (i = 0; i < len; i++) { 877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (ar[i] != i) { 977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao printf("error: [%d] %d != %d\n", i, ar[i], i); 1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao errors++; 1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao printf("Errors: %d\n", errors); 1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid testBrackets2D(int** ar2D, int lenX, int lenY) { 1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int x, y; 1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int errors = 0; 1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (x = 0; x < lenX; x++) { 2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (y = 0; y < lenY; y++) { 2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao ar2D[x][y] = x * lenY + y; 2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (x = 0; x < lenX; x++) { 2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for (y = 0; y < lenY; y++) { 2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int expected = x * lenY + y; 2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int val = ar2D[x][y]; 2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao if (val != expected) { 2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao printf("error: [%d][%d] %d != %d\n", x, y, val, expected); 3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao errors++; 3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao printf("2D Errors: %d\n", errors); 3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 3677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 3777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid testHeap() { 3877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int* ar = (int*) malloc(100); 3977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao testBrackets(ar, 25); 4077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao free(ar); 4177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 4277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 4377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaovoid testHeap2D() { 4477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int lenX = 10; 4577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int lenY = 5; 4677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int* ar = (int*) malloc(lenX * lenY * 4); 4777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int** ar2D = (int**) malloc(lenX * 4); 4877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao int i; 4977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao for(i = 0; i < lenX; i++) { 5077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao ar2D[i] = ar + lenY * i; 5177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao } 5277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao testBrackets2D(ar2D, lenX, lenY); 5377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao free(ar); 5477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao free(ar2D); 5577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 5677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 5777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint main() { 5877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao testHeap(); 5977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao testHeap2D(); 6077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao return 0; 6177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao} 62