bson_t の有効期間
項目一覧
A bson_t には、そのデータが直接含まれる場合や、ヒープ割り当てメモリへのポインターが含まれている場合もあります。既存の bson_t の上書き または、スタック割り当てされた bson_t を許可する がスコープ外にGo と、メモリ リークが発生する可能性があります。A bson_t は常に bson_detry で破棄する必要があります。
bson_t の出力パラメータ
A bson_t 出力パラメータとして使用されるポインターは、新しい bson_t の有効な上書き可能なストレージを指している必要があります また、次のいずれかである必要があります。
ゼロから初期化された bson_t オブジェクト。
A bson_t
BSON_INITIALIZER
で初期化されたオブジェクト。A bson_t bson_new で作成されていないオブジェクト bson_delete によって破棄された 。
これはスタック上に存在する可能性があります。
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_detry の 省略 いずれの場合もメモリリークが発生する可能性があります。