Если я хочу хранить информацию, возвращаемую запросом при вызове обратного вызова, должен ли я сделать глубокую копию каждого параметра в argv или могу ли я с уверенностью предположить, что sqlite3 не освободит его после возврата из обратного вызова? Я использую C как язык программирования.Должен ли я сделать глубокую копию каждого параметра в обратном вызове argv в SQLITE?
static int callback_consult(void *dummy, int argc, char **argv, char **col_name) {
res_consult_t * answer = &(global_answer -> consult_res);
movie_t *curr_tuple = calloc(sizeof(char), sizeof(movie_t));
/* Should I memcpy ??? */
curr_tuple -> name = argv[0];
curr_tuple -> genre = argv[1];
curr_tuple -> description = argv[2];
curr_tuple -> seats_available = argv[3]; /* Convert to int */
(answer -> movies)[tuple] = curr_tuple;
return SQLITE_OK;
}
Я думаю, что знаю, что вы просите, но вопрос был бы намного яснее, если бы вы предоставили образец кода C. –
Я только что добавил код @JohnBollinger, который должен быть достаточно ясным. – gibarsin