我想将char* buf[]
写入共享内存。
我有几个指向几个地图的指针 - char* m_pP[MAX]
,地图已打开
m_oMMF[channel] = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, wstring);
m_pP[channel] = (char*) MapViewOfFile(m_oMMF[channel], FILE_MAP_ALL_ACCESS, 0, 0, size);
地图的大小足够大,我得到了int offset
我希望使用这个m_P[]
指针在共享内存中写入但是我对此语法感到挣扎。
我对C ++没有那么有经验。 谁能帮我这个?
由于
答案 0 :(得分:1)
不确定如果我理解清楚。
但是我假设你有指向映射内存的字符指针,并且你试图在某个偏移量之后写入数据。
char * ptr_to_memory = m_pP[channel];
//buf is array of character pointer, so you need to know the "index" as well as "size" of the data you need to write.
char * data_to_write = buf[index];
memcpy( ptr_to_memory + offset, data_to_write, size );
请记住进行一些健全性检查,无论(ptr + offset)是否在映射区域内。