#include <stdio.h>


typedef char element;

typedef struct ListNode {

element data;

struct ListNode* next;

} ListNode;


typedef struct ListType {

ListNode* head;

} ListType;


void init(ListType* a) {

a->head = NULL;

}


int isEmpty(ListType* a) {

return a->head == NULL;

}


ListNode* makeNode(element e) {

ListNode* node = (ListNode*)malloc(sizeof(ListNode));

node->data = e;

node->next = NULL;

return node;

}


ListNode* getNode(ListType* a, int pos) {

ListNode* p = a->head;

for (int i = 0; i < pos; i++) {

p = p->next;

}

return p;

}

void insert(ListType* a, int pos, element e) {

ListNode* node = makeNode(e);

if (pos == 0) {

node->next = a->head;

a->head = node;

}

else {

ListNode* before = getNode(a, pos - 1);

node->next = before->next;

before->next = node;

}

}


int main() {

ListType L;

init(&L);

insert(&L, 0, 'a');

return 0;

}


이 코드 실행 시, 

-1073741819 코드(0xc0000005) 와 함께 종료되었습니다. 


만 뜨고, 정상적으로 코드가 끝나지 않는데, 이유를 모르겠습니다. 도움 주실 고수분 있으신가요 ㅠㅠ