Я возвращаю структуру из функции, которая содержит std :: map внутри нее, однако при доступе к указателю из возвращаемых данных, в то время как их адрес точно такой же, их данные не совпадают.
Я попытался проверить, является ли их адрес тем же, что и есть, и я также попытался дважды проверить, совпадают ли их данные, чего явно нет.
Структура, о которой идет речь:
struct exec_ret {
json json_data;
std::map<std::string, const void*> blob_ptrs;
};
Я вставляю указатель следующим образом:
exec_ret data;
...
std::string column_name = sqlite3_column_name(query, i);
const void* blob_data = sqlite3_column_blob(query, i);
...
data.blob_ptrs.insert(std::make_pair(column_name, blob_data));
return data;
И я получаю к нему доступ следующим образом:
const void* blob_data = data.blob_ptrs["data"]; //"data" is the column name
Ожидаемый результат: указатель хранится в порядке.
Фактический результат: данные указателя теряются.