共享内存存取结构体
两个程序,第一个向共享内存里存链表结构体,第二个读取数据,但是读取总是报错。 
 希望大家帮助。 
 下面是第二个程序,在key=101的里面存了共享链表的头地址 
 #include    <stdio.h>  
 #include    <sys/shm.h>  
 #include    <sys/ipc.h>      
 typedef   struct   _LinkNode 
 { 
 	void   *buff; 
 	struct   _LinkNode   *next; 
 }LinkNode;   
 main() 
 { 
 	int   shm_id,*shm_addr; 
 	LinkNode   *ptr; 
 	shm_id=shmget(101,64,0777); 
 	//printf( "%p\n ",shm_id); 
 	shm_addr=shmat(shm_id,NULL,0); 
 	printf( "shm_addr=%d\n ",*shm_addr);  	 
 	shm_id=shmget(*shm_addr,1024,0777); 
 	ptr=shmat(shm_id,NULL,0); 
 	printf( "ptr=%X\n ",ptr);  	 
 	printf( "%d\n ",__LINE__); 
 	printf( "ptr-> buff=%X\n ",ptr-> buff); 
 	printf( "%s\n ",ptr-> buff);//这里报错 
 	printf( "%d\n ",__LINE__); 
 	ptr=ptr-> next; 
 	printf( "ptr=%X\n ",ptr); 
 	//printf( "%s\n ",ptr-> next-> buff); 
 }   
------解决方案--------------------printf( "%s\n ",ptr-> buff);//这里报错 
 改 
 printf( "%s\n ",(char *)(ptr-> buff) ); 
 试试看   
 我的电脑编译没有错,gcc4.0.3下