Отладчик CodeBlocks не выдает значений, если я смотрю выражения со структурами данных - PullRequest
0 голосов
/ 06 августа 2020

Если я добавлю mp[0] в список наблюдения в следующем коде при отладке,

map<int,int> mp;
for(int i=0;i<10;mp[i]=i,i++);
cout<<mp[0];

, отладчик покажет ошибку в значении Attempt to take address of value not located in memory.

Также я протестировал тот же код с векторами и добавление vec[0] в список наблюдения,

vector<int> vec;
for(int i=0;i<10;vec.push_back(i++));
cout<<vec[0];

Я получил (__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type &) @0x173950: 0 в качестве значения. Я могу видеть значения карты / вектора в списке наблюдения в виде массива, но при доступе к определенным c значениям я получаю упомянутые сообщения. Я использую TDM-G CC -64 (9.2.0), а версия gdb - 8.3.1. Версия CodeBlocks - 20.03. Ошибка не возникает, если я использую массивы.

Как исправить ошибки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...