trim_zero(num_be_multiplyed);
trim_zero(multiplyer);
reverse_string(num_be_multiplyed);
reverse_string(multiplyer);
char* num_multiplyed = num_be_multiplyed;
for (size_t i = 0; i < strlen(multiplyer); i++)
{
char* num_to_multiplied = new char[strlen(num_be_multiplyed) + i + 1];
memset(num_to_multiplied, 0, strlen(num_be_multiplyed) + i + 1);
char* pTempResult = new char[strlen(num_be_multiplyed) + i + 2];
memset(pTempResult, 0, strlen(num_be_multiplyed) + i + 2);
setup_num(num_to_multiplied, num_multiplyed, i);
multiply_one_digits(num_to_multiplied, pTempResult, multiplyer[i] - 0x30);
save_result(pResultBuffer, pTempResult);
delete [] pTempResult;
delete [] num_to_multiplied;
}
reverse_string(num_be_multiplyed);
reverse_string(multiplyer);
reverse_string(pResultBuffer);
unsigned int move_right = move_right_1 + move_right_2;
adjust_result(pResultBuffer, move_right);
}
// Test Sample
int main()
{
char* pBuffer = new char[100];
memset(pBuffer, 0, 100);
char multiplied[] = "111111111110.2";
char multiplyer[] = "22222222222.3";
multiply_huge(multiplied, multiplyer, pBuffer);
printf("%s/r/n", pBuffer);
delete [] pBuffer;
pBuffer = NULL;
return 0;
}