Why can't I configure in the ArduinoModbus library?

hi, everyone

i used Arduino Uno.

I implemented the Modbus server using the Arduino Modbus library.

but, It begins well, but not configure.

My code is below.

#include <ArduinoModbus.h>
const int numInputRegisters = 10;
void setup (void)
{  
  Serial1.begin(9600);
  Serial1.println("Serial Start!");

  // start the Modbus RTU server, with (slave) id 4
  if (!ModbusRTUServer.begin(4, 57600)) {
    Serial1.println("Failed to start Modbus RTU Server!");
    while (1);
  }
    // configure input registers at address 0x00
  if(ModbusRTUServer.configureInputRegisters(0x00, numInputRegisters) == 0)
  {
    Serial1.println("Successed to Configure");
  }
  else
  {
    Serial1.println("Failed to Configure");
  }
}

"Failed to Configure" is displayed on the serial monitor.

i used Arduino Uno.

I implemented the Modbus server using the Arduino Modbus library.

The ArduinoModbus library is a bad choice for AVR Arduinos (UNO is an AVR Arduino) as it is rather lavish in memory usage.

  if(ModbusRTUServer.configureInputRegisters(0x00, numInputRegisters) == 0)

configureInputRegisters() returns 1 in case of success.

According to ArduinoModbus - Arduino Reference,

0 is a success and 1 is a failure.

The documentation seems to be wrong:

int ModbusServer::configureInputRegisters(int startAddress, int nb)
{
  if (startAddress < 0 || nb < 1) {
    errno = EINVAL;

    return -1;
  }

  size_t s = sizeof(_mbMapping.tab_input_registers[0]) * nb;

  _mbMapping.tab_input_registers = (uint16_t*)realloc(_mbMapping.tab_input_registers, s);

  if (_mbMapping.tab_input_registers == NULL) {
    _mbMapping.start_input_registers = 0;
    _mbMapping.nb_input_registers = 0;

    return 0;
  }

  memset(_mbMapping.tab_input_registers, 0x00, s);
  _mbMapping.start_input_registers = startAddress;
  _mbMapping.nb_input_registers = nb;

  return 1;
}

0 is returned if the memory for the registers couldn't be allocated. If you got the memory 1 is returned.