Обмен картами между различными библиотеками

У меня есть две dll, скажем, A и B. Из которых одна dll B поменяет карту с dll A.

Структура карты

map<int,vector<clock_t>>* mObj = new map<int,vector<clock_t>>;

Здесь mObj находится в куче памяти. Но ключ карты и значение (векторные элементы) находятся в памяти стека. Поскольку стек будет вне области видимости, как только он выйдет из блока. Будут ли существовать векторные элементы, когда я поменяю карту, которая находится в другой Dll (так как она выходит из DLL)?

На самом деле я могу получить векторные элементы из замененной карты из A.dll внутри B.dll. Как это возможно ..? Только элементы памяти стека программ A.dll имели эти векторные элементы (в куче был только объект карты), тогда как мне получить доступ к векторным элементам из B.dll?

0

Решение

В стеке ничего нет.

map<int,vector<clock_t>> не содержит никаких указателей или ссылок на что-либо. int ключи будут скопированы на внутренний map объем памяти. То же самое для vector внутри map и clock_t внутри vector,

0

Другие решения


По вопросам рекламы [email protected]