当前位置: 技术问答>linux和unix
warning: cast to pointer from integer of different size
来源: 互联网 发布时间:2016-07-18
本文导语: /******定义2个共享内存的ID******/ int arrayid; int getid; int putid; /******定义共享内存虚拟地址******/ int *array; int *get; int *put; /******创建共享内存******/ array...
/******定义2个共享内存的ID******/
int arrayid;
int getid;
int putid;
/******定义共享内存虚拟地址******/
int *array;
int *get;
int *put;
/******创建共享内存******/
arrayid=shmget(IPC_PRIVATE,sizeof(int)*MAXSHM,IPC_CREAT|0666);
getid=shmget(IPC_PRIVATE,sizeof(int),IPC_CREAT|0666);
putid=shmget(IPC_PRIVATE,sizeof(int),IPC_CREAT|0666);
/******初始化共享内存******/
array= (int *) shmat(arrayid,0,0);
get= (int * ) shmat(getid,0,0);
put= (int * ) shmat(putid,0,0);
代码如上所示,编译时出现
semshm.c:47: warning: cast to pointer from integer of different size
semshm.c:48: warning: cast to pointer from integer of different size
semshm.c:49: warning: cast to pointer from integer of different size
编译可以在warning下勉强通过,但是执行时出现段错误。
编译环境
ubuntu 9.10 64位 + GCC gcc (Ubuntu 4.4.1-4ubuntu8) 4.4.1
应该是shmat返回的32位的指针,请问如何让shmat返回64位指针??
|
shmget返回的不是指针,是共享内存的ID号
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。