---
name: "bson_mem_set_vtable"
section: "3"
platform: "linux"
package: "libbson-doc"
version: "1.30.4-1+deb13u3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/bson_mem_set_vtable"
---

# bson\_mem\_set\_vtable(3)

## SYNOPSIS

```
typedef struct _bson_mem_vtable_t {
   void *(*malloc) (size_t num_bytes);
   void *(*calloc) (size_t n_members, size_t num_bytes);
   void *(*realloc) (void *mem, size_t num_bytes);
   void (*free) (void *mem);
   void *(*aligned_alloc) (size_t alignment, size_t num_bytes);
   void *padding[3];
} bson_mem_vtable_t;
void
bson_mem_set_vtable (const bson_mem_vtable_t *vtable);
```

## PARAMETERS

- •

  **vtable**: A bson\_mem\_vtable\_t with every non-padding field set.

## DESCRIPTION

This function shall install a new memory allocator to be used by Libbson.

For backwards compatibility, if **vtable-\>aligned\_alloc** is not set, calls to **vtable-\>aligned\_alloc** will use **vtable-\>malloc** instead.

**WARNING:**

This function *MUST* be called at the beginning of the process. Failure to do so will result in memory being freed by the wrong allocator.

## AUTHOR

MongoDB, Inc

## COPYRIGHT

2009-present, MongoDB, Inc.
