内存读数出乱码怎么处理

内存读数出乱码怎么办

//这是发送函数
bool sendnum(char* x,int len)
{
HANDLE hmap;
LPCTSTR hview;
hmap=CreateFileMapping(INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
0x4,
"sharenum");
if (hmap==NULL)
{
printf("创建内存映射失败\n");
return FALSE;
}
hview=(LPCTSTR)MapViewOfFile(hmap,FILE_MAP_ALL_ACCESS,0,0,0);
if (hview==NULL)
{
printf("获取内存地址失败\n");
}
memcpy((void *)hview,(void *)x,len);
UnmapViewOfFile(hview);
return true;
}
int main()
{
int n=23;
char ss[256];
sprintf(ss,"%d",n);
Sleep(10000);
while (1)
{
system("cls");
printf("sending...\n");
sendnum((char *)&(n),sizeof(n));
}

system("pause");
return 0;
}



//这是接收代码
HANDLE hmap;
LPCTSTR hview;
hmap=OpenFileMapping(FILE_MAP_READ,FALSE,"sharenum");
if (hmap==NULL)
{
printf("打开内存映射失败");
return NULL;
}
hview=(LPCTSTR)MapViewOfFile(hmap,FILE_MAP_READ,0,0,0);
if (hview==NULL)
{
printf("获取映射文件地址失败");
return NULL;
}


char x[256];
sprintf(x,hview);
int s=(int)&x;
printf("%d\n",s);
UnmapViewOfFile(hview);

当用
printf("%d\n",s);

结果是内存读数出乱码怎么处理

当用

printf("%s\n",x);

结果是内存读数出乱码怎么处理

当调试时发现hview的内存里存的是
内存读数出乱码怎么处理

大家看看这个该怎么搞,才能正确显示传入的数字呢?我各种试了都不成功。。。。
------解决方案--------------------
  char x[256];
    sprintf(x,hview);
    int s=(int)&x;
    printf("%d\n",s);


-->

 

    int s=*(int*)hview;
    printf("%d\n",s);

试试