Создание связанного списка с циклом for

Вот моя структура

struct ListItem{ int data; struct ListItem *next; }; 

Предполагая, что первый узел связанного списка будет иметь данные = 0, я хочу написать цикл for, который создает связанный список размером 5, но я не уверен, как работать

Я попробовал следующее

 int main(int argc, char* argv[]){ struct ListItem a; a.data = 0; for (int i = 1; i next; } } 

Но результатом является a.data = 0 и a.next-> data = 4

Не изменяйте a. Возьмите временный узел, начиная с a. Сделайте это следующим пунктом для нового узла, а затем установите временный узел на новый узел. Также выделяйте динамически в кучу. В противном случае память будет освобождена после каждого цикла

 struct ListItem a[5] = { {0, NULL}}; struct ListItem *pointer = &a[0]; for (int i = 0; i < 5; i++){ a[i].data = i; if(i != 5 -1) a[i].next = &a[i+1]; }