Hi all, Firstly, forgive me for a slightly naïve question; I dont normally code in C and Im having problems freeing up memory.
Basically I have a structure I use to hold data results: //===================== typedef struct { char *sqlStatement; // Either the sqlstatement to be executed or the last statement that was executed char **results; // the result stored in an array char *err_msg; // the error message int numrows; // number of rows of results int numcols; // the number of columns of data returned } RESULT_T; //======================= I pass this structure to a wrapper function that ultimately calls sqlite3_get_table and returns the results structure on tresults //======================= int execute_command (size_t nbytes, char *command, RESULT_T *tresults) //======================= In the function that calls execute_command(), I want to free up the memory that was allocated by sqlite3_get_table(). Do I just call the free function like this: sqlite3_free_table(tresults.results); (assuming that I created a variable called tresults of type RESULT_T in the calling function). Ive tried quite a few permutations and am never quite sure if Ive actually freed up the memory. Is there a fool proof way to check? Also, how do I free up the error messages? What if there are no results returned by sqlite3_get_table, can I still attempt to free up the memory with sqlite3_free_table I appreciate you reading down this far, and sorry if my code snips are hard to follow!! TIA Richard.