У меня есть класс, как показано ниже
class client_info{
public:
bool exist = false;
int ID;
std::string name;
std::vector<int> record;
};
И я хочу выделить общую память для массива client_info
(30 элементов) для взаимодействия между процессами.
Однако,поскольку некоторые элементы clinet_info
имеют тип std::string
или std::vector
.Размер client_info
изменится при запуске программы.sizeof(client_info)
похоже не может получить правильный размер памяти client_info
.
Как я могу определить аргумент размера в int shmget(key_t key, size_t size, int shmflg);
Или есть какой-то альтернативный способ объявить блок разделяемой памяти.Для удобства я не хочу использовать PIPE или FIFO.