[英]How can I allocate memory for the std::vector<std::vector<int> > data type?
[英]How can I allocate shared memory for a class with type string and type vector elements
我有一個像下面這樣的課程
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);
的size參數int shmget(key_t key, size_t size, int shmflg);
或者有一些替代方法來聲明共享內存塊。 為了方便起見,我不想使用PIPE或FIFO。
問了這個問題之后,我得到了一個非常相似的問題: 是否可以將std :: vector放置到共享內存中?
看來您永遠不應在共享內存中放置動態數據指令。 如果您確實想使用共享內存,請嘗試使用靜態大小的指令來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.