Hello!

I have again a question to using the boost vector with shared memory objects.
I managed inserting the objects of type "MyType" into the vector with the following code:

typedef boost::interprocess::allocator<MyType*, managed_shared_memory::segment_manager> ShmemAllocator;
typedef boost::interprocess::vector<MyType*, ShmemAllocator> MyVector;

struct shm_remove{
   shm_remove(){shared_memory_object::remove("MySharedMemory");}
   ~shm_remove(){shared_memory_object::remove("MySharedMemory");}
}remover;

managed_shared_memory segment(create_only, "MySharedMemory", 65536);

const ShmemAllocator alloc_inst(segment.get_segment_manager());
MyVector *vector = segment.construct<MyVector>("Vector")(alloc_inst);

MyType *mytype = segment.construct<MyType>(anonymous_instance)();
MyVector->push_back(mytype);


The problem is that I can't manage to extract the object from the vector. I always get a null pointer or
a pointer to somewhere.
This is the code for the child process:

managed_shared_memory segment(open_only, "MySharedMemory");
vector = segment.find<MyVector>("Vector").first;
MyType *mytype = vector->at(1); // program crashes when I try to print members of the object MyType or
MyType mytype = (MyType&)vector->at(1); // object is empty

Does anybody have any hint or an idea what I'm doing wrong?

Thank you very much for your help!

Best regards,
Sabine