当前位置: 技术问答>linux和unix
把二叉树放入共享内存中的问题
来源: 互联网 发布时间:2015-05-20
本文导语: shmid=shmget(KEY,SIZE,IPC_CREAT|0600); shmaddr=(char *)shmat(shmid,NULL,SHM_RND); 现在有一个二叉树: struct list { char lstr; struct list *rptr; struct list *lptr; }; typedef struct list node; typedef node *llink; llink root; 请问怎么把这么一个二...
shmid=shmget(KEY,SIZE,IPC_CREAT|0600);
shmaddr=(char *)shmat(shmid,NULL,SHM_RND);
现在有一个二叉树:
struct list
{
char lstr;
struct list *rptr;
struct list *lptr;
};
typedef struct list node;
typedef node *llink;
llink root;
请问怎么把这么一个二叉树放到共享内存里面去?
shmaddr=(char *)shmat(shmid,NULL,SHM_RND);
现在有一个二叉树:
struct list
{
char lstr;
struct list *rptr;
struct list *lptr;
};
typedef struct list node;
typedef node *llink;
llink root;
请问怎么把这么一个二叉树放到共享内存里面去?
|
你自己实现一下malloc,只是返回的地址是你用shmat得到的地址空间,不过比较麻烦.
|
root=(node*)shmat(shmid,NULL,0);
|
除了使用链表来实现,你还可以用数组来实现,只不国用数组来实现不太灵活,而且要先分配内存空间。
|
用数组实现整个二叉树,然后放.