日期:2014-05-16  浏览次数:20568 次

若问一个进程间的通信问题。
我用共享内存实现进程间的通信。
用shmget和shmat实现内存的分配和映射。
得到指针void   *ptr指向分配的地址;

将ptr转换成类的指针class*运行出现Segmentation   fault。
若将ptr指向结构体就没问题,但是结构体里有诸如string变量的话就会出现同样错误。
是不是因为shmget和shmat是c调用所以不能存c++的类?
共享内存分配有没有面向c++的?
string这个变量我必须传,麻烦大家帮我想想办法。


------解决方案--------------------
你申请的共享内存大小是固定的,可 struct multi_data*cc = (struct multi_data*)(aa);时结构体的大小因为string类型却无法固定大小。