Cześć. Podczas pracy nad projektem natrafiłem na rzecz, która jest trochę dziwna. Mianowicie wynikiem takiego kodu:
int idPamieci = shmget(1234, 10240, IPC_CREAT | 0666);
klient *klient1 = shmat(idPamieci, NULL, 0);
bool *graTrwa = shmat(idPamieci, NULL, 0);
*graTrwa = true;
printf("1Gra trwa: %s\n",(*graTrwa)?"true":"false");
printf("2Gra trwa: %s\n",(*graTrwa)?"true":"false");
*klient1 = (klient){ 0, 0, 0, 0, 0, 0, 300, false};
printf("3Gra trwa: %s\n",(*graTrwa)?"true":"false");
Będzie:
1Gra trwa: true
2Gra trwa: true
3Gra trwa: false
Dlaczego tak się dzieje? Przecież nie zmieniam między tymi linijkami wartości *graTrwa. O co może chodzić?