I want to create a shared memory with the size of this structure. Two processes should have access to this struct that is why I put it into shm. There are a few ways to create a shared memory and I´m not sure if my code is correct.
typedef struct {
   char *gamename;
   int numberofplayer;
   int player;
  
} gamedata;
int shm () {
    
    int shmid = shmget(IPC_PRIVATE, sizeof(gamedata), IPC_CREATE | 0644);
    if (shmid<0){
        perror("shmget failed \n"),
        return EXIT_FAILURE;
    }
   
   gamedata* data = (gamedata*) shmat(shmid, 0, 0);
   if(data == NULL){
       perror("shmat failed \n");
       return EXIT_FAILURE;
   }
   
   shmctl(shmid, IPC_RMID, 0);
   shmdt(data);
}