Если я добавлю 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
. Ошибка не возникает, если я использую массивы.
Как исправить ошибки?