int main(int argc, char * argv[]) { bool pass = true; { int a[] = {}; int b[] = {}; std::vector<int> A = vec_transform(a, sizeof(a) / sizeof(int)); std::vector<int> B = vec_transform(b, sizeof(b) / sizeof(int)); int s = merge_sorted_arrays(A, 0, B); int r[] = {}; pass = pass && vec_compare(A, r, sizeof(r) / sizeof(int)); } { int a[] = { 1, 3, 5, 0, 0, 0, 0, 0 }; int b[] = { 2, 4, 6, 8, 10 }; std::vector<int> A = vec_transform(a, sizeof(a) / sizeof(int)); std::vector<int> B = vec_transform(b, sizeof(b) / sizeof(int)); int s = merge_sorted_arrays(A, 3, B); int r[] = {1, 2, 3, 4, 5, 6, 8, 10 }; pass = pass && vec_compare(A, r, sizeof(r) / sizeof(int)); } { int a[] = { 1, 3, 5, 0, 0, 0, 0, 0, 0, 0, 0 }; // More buffer than required int b[] = { 2, 4, 6, 8, 10 }; std::vector<int> A = vec_transform(a, sizeof(a) / sizeof(int)); std::vector<int> B = vec_transform(b, sizeof(b) / sizeof(int)); int s = merge_sorted_arrays(A, 3, B); int r[] = {1, 2, 3, 4, 5, 6, 8, 10, 0, 0, 0 }; pass = pass && vec_compare(A, r, sizeof(r) / sizeof(int)); } return (pass ? 0 : -1); }
int main(){ int list2[4] = {2,7,8,12}; int list1[3] = {-1, 0, 10}; int *lptr1 = list1, *lptr2 = list2; int *newlistptr = merge_sorted_arrays(lptr1, sizeof list1/sizeof *lptr1, lptr2, sizeof list2/sizeof *lptr2) ; printf("\n The new array after merging the two arrays is ...\n") ; for(long unsigned int i=0; i< ((sizeof list1/sizeof *lptr1) + (sizeof list2/sizeof *lptr2) ); i++) { printf("%d ", *(newlistptr+i)) ; } return 0; }