このように:const void * test = sqlite3_column_blob(stat、1); テストを削除または削除できますか?
3972 次
2 に答える
8
返されるポインターは、型変換が発生するまで、またはsqlite3_step()またはsqlite3_reset()またはsqlite3_finalize()が呼び出されるまで有効です。文字列とBLOBを保持するために使用されるメモリスペースは自動的に解放されます。sqlite3_column_blob()によって返されたポインターをsqlite3_free()に渡さないでください。
于 2010-03-23T05:16:40.370 に答える
0
そのAPIマニュアルを見てください。C APIの場合は、おそらくそれが必要free
です。sqlite3_freeのような独自の関数を提供しない場合(たとえば、pcreがこれを実行します)、その関数を使用する必要があります。
voidポインターがあるため、C++のdelete演算子を使用して削除することはできません。コンパイラはその型を認識している必要があるため、voidポインタを削除することはできません。(voidは不完全なタイプです。不完全なタイプも削除できません)。
于 2008-11-28T06:36:09.330 に答える