New paste Repaste Download
#include "errno.h"
#include "stdio.h"
#include "stdlib.h"
enum {
  BUFFER_SIZE = 100
};
int add(const double number1, const double number2, double* result)
{
  if (result) {
    *result = number1 + number2;
    return 0;
  }
  errno = EINVAL;
  return -errno;
}
double* getInput()
{
  char userInput[BUFFER_SIZE];
  if (fgets(userInput, sizeof(userInput), stdin) == NULL) {
      perror("Failed reading from buffer");
      return NULL;
    }
  
  double* value = malloc(sizeof(double));
  if (value == NULL) {
    perror("Failed to allocate memory");
    return NULL;
  }
  *value = strtod(userInput, NULL);
  return value;
}
int main() {
  double* number1 = getInput();
  double* number2 = getInput();
  double  result  = 0;
  int status = add(*number1, *number2, &result);
  free(number1);
  free(number2);
  if (status == 0) {
    printf("%lf\n", result);
  }
  else {
    perror("error adding numbers");
  }
  return 0;
}
Filename: None. Size: 995b. View raw, , hex, or download this file.

This paste expires on 2024-05-25 07:09:43.221195. Pasted through web.