---
name: "getdns_dict_create"
section: "3"
platform: "linux"
package: "getdns"
version: "1.7.3-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/getdns_dict_create"
---

# getdns\_dict\_create(3)

## NAME

**getdns\_dict,** **getdns\_dict\_create,** **getdns\_dict\_create\_with\_extended\_memory\_functions,** **getdns\_dict\_create\_with\_memory\_functions,** **getdns\_dict\_destroy** -- getdns dict create and destroy routines

## LIBRARY

DNS Resolver library (libgetdns, -lgetdns)

## SYNOPSIS

\#include \<getdns.h\>

getdns\_dict \* \
 **getdns\_dict\_create** ()

getdns\_dict \*\
 **getdns\_dict\_create\_with\_extended\_memory\_functions**

(void \*userarg,\
 void \*(\*malloc)(void \*userarg, size\_t sz),\
 void \*(\*realloc)(void \*userarg, void \*buf, size\_t sz),\
 void (\*free)(void \*userarg, void \*buf)

getdns\_dict \*\
 **getdns\_dict\_create\_with\_memory\_functions**

(void \*(\*malloc)(size\_t sz),\
 void \*(\*realloc)(void \*buf, size\_t sz),\
 void (\*free)(void \*buf)

void \
 **getdns\_dict\_destroy** (getdns\_dict \*this\_dict)

## DESCRIPTION

The getdns\_dict type is used to manage name/value pairs in which the names are strings and the data types of the values are heterogeneous and include

getdns\_bindata\
 getdns\_dict\
 getdns\_list\
 uint32\_t

The destroy function performs a "deep" destroy, freeing storage for all of the members of the dictionary before destroying the dictionary.  There are a number of helper functions that provide access to the dictionary object, see their respective man pages.

*userarg* pass this argument to the user specified memory management functions for operations on lists created using extended memory functions

*this\_dict* the dictionary to destroy

## RETURN VALUES

Upon successful completion the getdns\_dict\_create function returns a valid (empty) dictionary structure that should be freed via a call to getdns\_dict\_destroy.  If a parameter in invalid or in the event of some error getdns\_dict\_create returns NULL.

## EXAMPLES

TBD

## SEE ALSO

[**libgetdns**(3)](/libgetdns/3.md), [**getdns\_dict\_get**(3)](/getdns_dict_get/3.md), [**getdns\_dict\_set**(3)](/getdns_dict_set/3.md), [**getdns\_list**(3)](/getdns_list/3.md), [**getdns\_pretty\_print\_dict**(3)](/getdns_pretty_print_dict/3.md).
