Array of Linked lists on disk
I am trying to find how to store and process (search, add, remove) an array of linked lists on disk. For example in memory, it would like


    struct list {
     int a;
     struct list *next;
    }LIST
    
    LIST *array[ARRAY_SIZE]

    int main{
    ...
     LIST *foo = array[pointer];
     /* Search */
     while(foo!=NULL){
       ...
       foo=foo->next
     }
    }

1. I believe that by using fseek() I can point to a specific element/structure of the array in the file. But I cannot understand if all previous elements need to have been written or not. 
2. Can this be done with dynamic allocation on disk?
3. How will I link on element to another one in the linked list? 
Any example would certainly help!
Array of Linked lists on disk
===

I am trying to find how to store and process (search, add, remove) an array of linked lists on disk. For example in memory, it would like


    struct list {
     int a;
     struct list *next;
    }LIST
    
    LIST *array[ARRAY_SIZE]

    int main{
    ...
     LIST *foo = array[pointer];
     /* Search */
     while(foo!=NULL){
       ...
       foo=foo->next
     }
    }

1. I believe that by using fseek() I can point to a specific element/structure of the array in the file. But I cannot understand if all previous elements need to have been written or not. 
2. Can this be done with dynamic allocation on disk?
3. How will I link on element to another one in the linked list? 
Any example would certainly help!