문서 메뉴
문서 홈
/ / /
C 드라이버
/ /

bson_t Lifetimes

이 페이지의 내용

  • bson_t 출력 매개변수

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

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

  • bson_t의초기화되지 않은 스토리지입니다.

  • 0으로 초기화 된 bson_t 객체.

  • A bson_t 로 초기화된 BSON_INITIALIZER 객체입니다.

  • A bson_t bson_new 로 객체가 생성되지 않았습니다. 즉,bson_destory로 파기되었습니다.

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

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_t 전달 bson_new 에서 얻은 포인터 out 매개 변수는 bson_t 구조체.

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

돌아가기

JSON

다음

크로스 플랫폼 참고 사항

이 페이지의 내용