Docs Menu
Docs Home
/ /

bson_t Lifetimes

A bson_t 는 데이터를 직접 포함하거나 힙 할당 메모리에 대한 포인터를 포함할 수 있습니다. 기존 bson_t 를 덮어쓰거나 스택 할당된 bson_t 가 범위를 고 (Go) 도록 허용하면 메모리 누수가 발생할 수 있습니다. bson_t 는 항상 bson_destroy로 파기해야 합니다.

출력 매개변수로 사용되는 bson_t 포인터는 다음 중 하나여야 하는 새 bson_t 에 대한 유효한 덮어쓸 수 있는 저장 를 점 야 합니다.

이는 스택에 있을 수 있습니다.

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

또는 힙에서:

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

두 경우 모두 bson_destory 를 생략하면 메모리 누수가 발생할 수 있습니다.

경고

bson_new 에서 얻은 bson_t 포인터를 출력 매개변수로 전달하면 bson_t 구조체가 유출될 수 있습니다.

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

돌아가기

JSON

이 페이지의 내용