簡體   English   中英

如何為具有類型字符串和類型向量元素的類分配共享內存

[英]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::stringstd::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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM