---
name: "modbus_mapping_new"
section: "3"
platform: "linux"
package: "libmodbus-dev"
version: "3.1.6-2.1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/modbus_mapping_new"
---

# modbus\_mapping\_new(3)

allocate four arrays of bits and registers

## NAME

modbus\_mapping\_new - allocate four arrays of bits and registers

## SYNOPSIS

**modbus\_mapping\_t** modbus\_mapping\_new(int *nb\_bits*, int *nb\_input\_bits*, int *nb\_registers*, int *nb\_input\_registers*);\*

## DESCRIPTION

The **modbus\_mapping\_new()** function shall allocate four arrays to store bits, input bits, registers and inputs registers. The pointers are stored in modbus\_mapping\_t structure. All values of the arrays are initialized to zero.

This function is equivalent to a call of the [**modbus\_mapping\_new\_start\_address**(3)](/modbus_mapping_new_start_address/3.md) function with all start addresses to 0.

If it isn’t necessary to allocate an array for a specific type of data, you can pass the zero value in argument, the associated pointer will be NULL.

This function is convenient to handle requests in a Modbus server/slave.

## RETURN VALUE

The function shall return the new allocated structure if successful. Otherwise it shall return NULL and set errno.

## ERRORS

**ENOMEM**

Not enough memory

## EXAMPLE

```
/* The first value of each array is accessible from the 0 address. */
mb_mapping = modbus_mapping_new(BITS_ADDRESS + BITS_NB,
                                INPUT_BITS_ADDRESS + INPUT_BITS_NB,
                                REGISTERS_ADDRESS + REGISTERS_NB,
                                INPUT_REGISTERS_ADDRESS + INPUT_REGISTERS_NB);
if (mb_mapping == NULL) {
    fprintf(stderr, "Failed to allocate the mapping: %s\n",
            modbus_strerror(errno));
    modbus_free(ctx);
    return -1;
}
```

## SEE ALSO

[**modbus\_mapping\_free**(3)](/modbus_mapping_free/3.md) [**modbus\_mapping\_new\_start\_address**(3)](/modbus_mapping_new_start_address/3.md)

## AUTHORS

The libmodbus documentation was written by Stéphane Raimbault \<stephane.raimbault@gmail.com\>
