유닉스프로그래밍에서 공유메모리부분 질문드려요

swlee0407의 이미지

유닉스프로그래밍 막히는게있는데요

#define CL_SIZE 20
struct cl_info{
	char nickname[CL_SIZE];
	char IP[20];
	int csock;//클라이언트소켓정보
	int running;//0이 사용중 1이 사용가능
	int inout;//0이 없음 1이 있음
};
int shmid;
int key;
void * shared_memory=(void *)0;
struct cl_info *cinfo[20];
 
   key=ftok("cl_info",1);
   shmid=shmget(key,sizeof(*cinfo)*20,0666 | IPC_CREAT); //만들고
   shared_memory=shmat(shmid,(void *)0,0);	//붙이고
   cinfo=(struct cl_info*)shared_memory;  //연결

이런식으로 하는데 구조체배열공간을 한번에 저기 만들었는데 연결시키는방법을 모르겠어요
cinfo라는 구조체를 20개만들어서 공유메모리로 등록하고싶은데 하나씩 다할수는없고
좋은방법없을까요??