Я использую g ++.
Реализована некоторая обертка для моего удобства работы с libmysql. Также создаю C / C ++ совместимый код.
static MYSQL_RES *db_query(MYSQL *db, const char *query, va_list params) {
char q[500];
vsprintf(q, query, params);
va_end(params);
if (mysql_query(db, q)) {
fprintf(stderr, "%s\n", mysql_error(db));
return NULL;
}
MYSQL_RES *res = mysql_use_result(db);
return res;
}
MYSQL_ROW* db_query_all(MYSQL *db, const char* query, ...) {
va_list params;
MYSQL_RES *res = db_query(db, query, params);
int count = mysql_num_rows(res);
MYSQL_ROW rows[count];
for (int i = 0; i<count; i++)
{
rows[i] = mysql_fetch_row(res);
}
mysql_free_result(res);
return rows;
}
И получаю предупреждение во время компиляции:
warning: address of local variable ‘rows’ returned [-Wreturn-local-addr]
MYSQL_ROW rows[count];
Пожалуйста, помогите мне найти в чем проблема. Я не могу найти что-то подходящее для моего конкретного случая.