Menu Docs
Página inicial do Docs
/ / /
Driver C
/ /

bson_t Lifetimes

Nesta página

  • Parâmetros de saída bson_t

A bson_t pode conter seus dados diretamente ou pode conter ponteiros para memória alocada por heap. Substituindo um bson_t existente ou permitindo um bson_t alocado na pilha sair do escopo pode causar um vazamento de memória. A bson_t deve sempre ser destruído com bson_destroy.

A bson_t o ponteiro usado como parâmetro de saída deve apontar para um armazenamento substituível válido para um novo bson_t que deve ser um dos seguintes:

  • Armazenamento não inicializado para um bson_t.

  • Um bson_t inicializado com zero evento.

  • A bson_t objeto inicializado com BSON_INITIALIZER.

  • A bson_t objeto não criado com bson_new que foi destruído com bson_destroy.

Isso pode estar na pilha:

bson_t stack_doc = BSON_INITIALIZER;
example_get_doc (&stack_doc);
bson_destroy (&stack_doc);

Ou no montão:

bson_t *heap_doc = bson_malloc (sizeof (bson_t));
example_get_doc (heap_doc);
bson_destroy (heap_doc);
bson_free (heap_doc);

Omitir bson_destroy em ambos os casos pode causar vazamentos de memória.

Aviso

Passar um bson_t ponteiro obtido de bson_new como um parâmetro de saída resultará em um vazamento do bson_t estruturado.

bson_t *heap_doc = bson_new ();
example_get_doc (heap_doc);
bson_destroy (heap_doc); // Leaks the `bson_t` struct!

Voltar

JSON

Próximo

Notas entre plataformas