2008-11-28 12 views

Répondre

0

Regardez son manuel de l'API. S'il s'agit d'une API C, vous devez probablement le free. S'il ne fournit pas sa propre fonction comme sqlite3_free (pcre le fait par exemple), vous devez utiliser cette fonction. Ce que vous ne pouvez pas faire est de le supprimer en utilisant l'opérateur de suppression de C++, puisque vous avez un pointeur vide. Vous ne pouvez pas supprimer un pointeur vide, car le compilateur doit connaître son type. (et void est un type incomplet, vous ne pouvez pas non plus supprimer les types incomplets).

7

De l'sqllite documentation:

Les pointeurs retournés sont valides jusqu'à ce qu'une conversion de type se produit ou jusqu'à ce que sqlite3_step() ou sqlite3_reset() ou sqlite3_finalize() est appelée. L'espace mémoire utilisé pour stocker les chaînes et les objets BLOB est automatiquement libéré. Ne passez pas les pointeurs renvoyés par sqlite3_column_blob() dans sqlite3_free().

Questions connexes