#include <stdio.h>
typedef struct user user;
typedef struct message message;
struct message
{
int id;
int user;
message *next;
message *firstm;
};
struct user
{
char name[10];
int id;
message *messages;
user *next;
};
int main(void) {
user users[4] = {
{.name = {0} }
};
message msgs[4] = {{0}};
for (int i = 0; i < 4; i++) {
msgs[i].firstm = &msgs[0];
msgs[i].next = &msgs[i+1];
msgs[i].id = i;
users[i].messages = &msgs[0];
users[i].next = &users[i+1];
}
msgs[4].next = NULL;
users[4].next = NULL;
user *temp = &users[0];
for (message *firstme = temp->messages->firstm;
firstme->next != NULL;
firstme = firstme->next) {
printf("%d \n", firstme
->id
); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIHN0cnVjdCB1c2VyIHVzZXI7CnR5cGVkZWYgc3RydWN0IG1lc3NhZ2UgbWVzc2FnZTsKc3RydWN0IG1lc3NhZ2UKewogICAgaW50IGlkOwogICAgaW50IHVzZXI7CiAgICBtZXNzYWdlICpuZXh0OwogICAgbWVzc2FnZSAqZmlyc3RtOwp9OwoKc3RydWN0IHVzZXIKewogICAgY2hhciBuYW1lWzEwXTsKICAgIGludCBpZDsKICAgIG1lc3NhZ2UgKm1lc3NhZ2VzOwogICAgdXNlciAqbmV4dDsKfTsKCmludCBtYWluKHZvaWQpIHsKCXVzZXIgdXNlcnNbNF0gPSB7CgkJey5uYW1lID0gezB9IH0KCX07CgltZXNzYWdlIG1zZ3NbNF0gPSB7ezB9fTsKCQoJZm9yIChpbnQgaSA9IDA7IGkgPCA0OyBpKyspIHsKCQltc2dzW2ldLmZpcnN0bSA9ICZtc2dzWzBdOwoJCW1zZ3NbaV0ubmV4dCA9ICZtc2dzW2krMV07CgkJbXNnc1tpXS5pZCA9IGk7CgkJdXNlcnNbaV0ubWVzc2FnZXMgPSAmbXNnc1swXTsKCQl1c2Vyc1tpXS5uZXh0ID0gJnVzZXJzW2krMV07Cgl9Cgltc2dzWzRdLm5leHQgPSBOVUxMOwoJdXNlcnNbNF0ubmV4dCA9IE5VTEw7CgkKCgl1c2VyICp0ZW1wID0gJnVzZXJzWzBdOwoJZm9yIChtZXNzYWdlICpmaXJzdG1lID0gdGVtcC0+bWVzc2FnZXMtPmZpcnN0bTsKCQkJZmlyc3RtZS0+bmV4dCAhPSBOVUxMOwoJCQlmaXJzdG1lID0gZmlyc3RtZS0+bmV4dCkgewoJCXByaW50ZigiJWQgXG4iLCBmaXJzdG1lLT5pZCApOwoJfQoJCglyZXR1cm4gMDsKfQo=