Мне известно, что размер указателя фиксирован (а не размер данных, на которые он указывает).Теперь, учитывая, что, если у меня есть вектор данных в глобальной области видимости, и я объявляю указатель на вектор указателей на некоторые / все эти глобальные данные, сколько памяти это будет дополнительно использовать (ОЗУ)?Я в полном недоумении и буду признателен за некоторые идеи / советы.Я надеюсь, что дополнительное потребление памяти будет равно размеру вектора, умноженному на фиксированный размер указателя (скажем, 8 байт), независимо от сложности данных;поскольку данные, на которые он указывает, существуют в глобальном масштабе (т. е. новые данные не выделяются; надеюсь, я четко объяснил свои мысли).
Какой-то псевдокод, который выражает мой вопрос, будет выглядеть следующим образом:
std::vector<data> global_data;
std::vector<data*>* my_data = new std::vector<data*>(); //-Is this even valid?
//-Now populate the vector with pointers to data in global_data
for(int i=0; i<global_data.size(); ++i) {
my_data->push_back(&global_data[i]);
}
Тогда мой вопрос состоит в том, сколько дополнительной памяти в ОЗУ (т. Е. Превышает то, что уже используется при создании * 1006).* global_data ) используется m_data ??