5 the memory is deallocated. |
5 the memory is deallocated. |
6 Additionally, you may also register _independent_ destructor functions within a pool in case some external library |
6 Additionally, you may also register _independent_ destructor functions within a pool in case some external library |
7 allocated memory for you, which should be freed together with this pool. |
7 allocated memory for you, which should be freed together with this pool. |
8 |
8 |
9 Many UCX features support the use of an allocator. |
9 Many UCX features support the use of an allocator. |
10 The [strings](#string), for instance, provide several functions suffixed with `_a` that allow specifying an allocator. |
10 The [strings](string.h.md), for instance, provide several functions suffixed with `_a` that allow specifying an allocator. |
11 You can use this to keep track of the memory occupied by dynamically allocated strings and cleanup everything with |
11 You can use this to keep track of the memory occupied by dynamically allocated strings and cleanup everything with |
12 just a single call to `cxMempoolFree()`. |
12 just a single call to `cxMempoolFree()`. |
13 |
13 |
14 The following code illustrates this on the example of reading a CSV file into memory. |
14 The following code illustrates this on the example of reading a CSV file into memory. |
15 ```C |
15 ```C |