int main (void) { Tbinary bin1 = {bin1.number = NULL, bin1.length = 0}; Tbinary bin2 = {bin2.number = NULL, bin2.length = 0}; //allocate space for first number bin1.number = (char *)malloc(sizeof(char)); if(bin1.number == NULL) return EXIT_FAILURE; //allocate space for second number bin2.number = (char *)malloc(sizeof(char)); if(bin2.number == NULL){ free(bin1.number); return EXIT_FAILURE; } printf("Enter two binary numbers:\n"); //number1 load if(get_number(&bin1) != EXIT_SUCCESS){ free(bin1.number); free(bin2.number); printf("Invalid input.\n"); return EXIT_FAILURE; } //number2 load if(get_number(&bin2) != EXIT_SUCCESS){ free(bin1.number); free(bin2.number); printf("Invalid input.\n"); return EXIT_FAILURE; } //add the two numbers if(bin1.length >= bin2.length){ if(binaryAdd(bin1, bin2) != EXIT_SUCCESS){ free(bin1.number); free(bin2.number); printf("Invalid input.\n"); return EXIT_FAILURE; } } else{ if(binaryAdd(bin2, bin1) != EXIT_SUCCESS){ free(bin1.number); free(bin2.number); printf("Invalid input.\n"); return EXIT_FAILURE; } } free(bin1.number); free(bin2.number); return EXIT_SUCCESS; }
int main(void) { int a[4] = {0, 0, 0, 0}; int b[4] = {0, 0, 0, 1}; int *c = binaryAdd(a, b, 4); for (int i = 0; i < 5; i++) { printf("%d ", c[i]); } printf("\n"); free(c); return 0; }