当前位置: 技术问答>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号