У меня есть фундаментальное сомнение относительно освобождения структуры и использования указателя в C ++.
Предположим, у меня есть следующий сценарий:
...
struct B
{
...
struct A a_field;
...
}
...
struct A* a_ref;
vector<struct B> b_vec;
...
// populate, use and modify b_vec elements here
...
a_ref = &(b_vec[i].a_field); // can be a one-time assignment
...
// deallocate b_vec elements here (including b_vec[i]) here
...
// using a_ref->some_field here !?!
...
Is a_ref
все еще собирается указывать на последнийизмененное состояние a_field
из b_vec[i]
, что делает его более надежным для использования в дальнейшем?
Или освобождение C ++ - STL сделает все поля b_vec[i]
ненадежными (значение мусора), когда он его выдвигаетвне вектора?