I'm currently working on a question for one of my homework assignments in a C programming course, and I am having trouble getting started on this question. If anyone can offer advice as to how to get me started here, or even refer me to other resources that might be of assistance, I would be very grateful.

Anyways, here is the section of code i am currently working with. It is a header file that we were asked to make along with our test code.
Code:
#ifndef INTVEC_H
#define INTVEC_H

#define IV_CHUNK_SIZE 3
typedef struct iv_chunk_s {
    int data[IV_CHUNK_SIZE];
    struct iv_chunk_s *next;
    int count;
} iv_chunk_t, *iv_chunk_p;

typedef  struct intvec_s {
    iv_chunk_p first,last;
    int length;
} intvec_t, *intvec_p;

intvec_p iv_new(void);
void iv_push(intvec_p v,int n);
int iv_get(intvec_p v,int pos);
#endif
Also for convience, here is a "generic" code for what a test sample should look like.

Code:
#include "INTVEC.h"
#include <stdio.h>

intvec_p iv_new(void){
    /* Mainly want help here */
}//iv_new
void iv_push(intvec_p v,int i){

}//iv_push
int iv_get(intvec_p v,int pos){

}//if_get

int main(){
    int i;
    intvec_p v = iv_new();
    for (i = 0; i < 10; i++){
        iv_push(v,i);
    }//for
    for (i = 0; i < 10; i++){
        printf("%d ",iv_get(v,i));
    }//for
}//main()
Please tell me if I am understanding this right. iv_new() is creating a new linked list, which should be initialized as void (uncertain how to do this properly). Next, iv_push() should add an element onto the end of the array, while maintaining all previous elements in the proper order (doing obvious linking). Lastly, iv_get() should take specific information from certain chains in the list and retrieve it.

My problem with this question is not what conceptually I should be doing, its more with the syntax. With all previous related questions all I had to do was call things and change them directly. With the add-on of the header file, and one struct leading to another I am confused as to how to link everything together into one seemingly flawless code. My issue is more with calling spcific information (in specific, setting elements in the array, and setting the pointers correctly to point in the right direction).

Discern whatever it is you would like to help me with, and I would be glad to accept it. If possible I would like to see an example of iv_new(), since I literally have no idea how to create it currently.

Also, for whom it may concern, the question asked to make iv_new, iv_push, and iv_get as part A. then there is also a few other parts that make the linked list more complicated. Answering this one part in no way gives me the entire assignment. If nothing else, it gives me a push in the right direction to work on it.

Thanks in advance,