| 426 |
426 |
| 427 The function `cxTreeFree()` behaves like `cxTreeClear()` and then deallocates the memory for the `CxTree` structure. |
427 The function `cxTreeFree()` behaves like `cxTreeClear()` and then deallocates the memory for the `CxTree` structure. |
| 428 |
428 |
| 429 > Although `CxTree` supports the general concept of [destructor functions](collection.h.md#destructor-functions), |
429 > Although `CxTree` supports the general concept of [destructor functions](collection.h.md#destructor-functions), |
| 430 > it is not based on `CX_COLLECTION_BASE`. |
430 > it is not based on `CX_COLLECTION_BASE`. |
| 431 > Therefore, the `cxDefineDestructor()` and `cxDefineAdvancedDestructor()` macros cannot be used on a `CxTree` and |
431 > Therefore, the `cxSetDestructor()` and `cxSetAdvancedDestructor()` macros cannot be used on a `CxTree` and |
| 432 > the fields must be set manually. |
432 > the fields must be set manually. |
| 433 >{style="note"} |
433 >{style="note"} |
| 434 |
434 |
| 435 <seealso> |
435 <seealso> |
| 436 <category ref="apidoc"> |
436 <category ref="apidoc"> |