Hi All

     Am facing a lot of issue while using interprocess features inside my class file. I am pasting my class file below:

 class MyClass{

Ref* ref;
  
public:
    MyClass();
    void initializeBuffers();
    void processMessage();
    ~MyClass();
};


void MyClass::createBuffer() {
    shared_memory_object::remove("test");
    shared_memory_object shm(open_or_create, infoBufferName, read_write);
    shm.truncate(sizeof(ServerDetails));
    mapped_region region(shm, read_write);
    void* addr = region.get_address();
    ref=new (addr) Ref;
    ref->value=50;
}

void MyClass::processMessage() {
    printf("%d",ref->value); //I get a segmentation fault in here.
}

int main()
{
    MyClass c();
    c.createBuffer();
    c.processMessage();
}

When I execute this I am getting segmentation exception.
If  I merge processMessage and createBuffer under same function it starts working. But if in any case I change the function signature to have an argument again this issue starts.
Am not sure if I am doing some thing wrong above. Please do help me on this.

Error I get is:
Program received signal SIGSEGV, Segmentation fault.
0x77d41df8 in ntdll!RtlGetCompressionWorkSpaceSize ()
   from C:\Windows\system32\ntdll.dll

--
Achu