diff --git a/problem-40.c b/problem-40.c index 77eab0c..7075619 100644 --- a/problem-40.c +++ b/problem-40.c @@ -9,19 +9,8 @@ int split_digits(int* digits, int num) { int len = 0; - - free(digits); - digits = malloc(1 * sizeof(int)); - while (num > 0) { len++; - - digits = (int*)realloc(digits, len * sizeof(int)); - if (digits == NULL) { - printf("A memory error occurred.\n"); - exit(1); - } - digits[len-1] = num % 10; num /= 10; } @@ -32,17 +21,11 @@ int split_digits(int* digits, int num) int main(int argc, char** argv) { - int* digits; + int digits[7] = {0}; int len; int digit = 0, i = 0; int prod = 1, num = 1; - digits = malloc(1 * sizeof(int)); - if (digits == NULL) { - printf("A memory error occurred.\n"); - exit(1); - } - len = split_digits(digits, num); while (digit < MAX_NUM) { @@ -62,6 +45,5 @@ int main(int argc, char** argv) } printf("The solution is %d\n", prod); - free(digits); return 0; }