#include <memcached.h> memcached_st *memcached_create (memcached_st *ptr); void memcached_free (memcached_st *ptr); memcached_st *memcached_clone (memcached_st *destination, memcached_st *source); void memcached_servers_reset(memcached_st);
memcached_clone() is similar to memcached_create(3) but it copies the defaults and list of servers from the source "memcached_st". If you pass a null as the argument for the source to clone, it is the same as a call to memcached_create(). If the destination argument is NULL a "memcached_st" will be allocated for you.
memcached_servers_reset() allows you to zero out the list of servers that the memcached_st has.
To clean up memory associated with a "memcached_st" structure you should pass it to memcached_free() when you are finished using it. memcached_free() is the only way to make sure all memory is deallocated when you finish using the structure.
You may wish to avoid using memcached_create(3) or memcached_clone(3) with a stack based allocation. The most common issues related to ABI safety involve heap allocated structures.
memcached_clone() returns a pointer to the memcached_st that was created (or initialized). On an allocation failure, it returns NULL.