yeah that doubly semicolon was a typo but it still crashes whenever I add an element
Code:
typedef char NodeItemT;
typedef struct NodeT
{
NodeItemT info;
struct NodeT *next;
} NodeT;
typedef struct VectorT
{
NodeT *anchor;
} VectorT;
VectorT *newVector();
void addElement(VectorT *vector, NodeItemT item);
NodeItemT get(const VectorT *vector,int index);
int main()
{
VectorT *head;
head=newVector();
addElement(head,'A');
addElement(head,'B');
addElement(head,'C');
NodeItemT retrieve;
retrieve=get(head,0);
printf("%c\n",retrieve);
getch();
return 0;
}
VectorT *newVector()
{
VectorT *vector;
vector= (VectorT*) malloc(sizeof(VectorT));
vector->anchor=(NodeT*)malloc(sizeof(NodeT));
vector->anchor->next=NULL;
return vector;
}
void addElement(VectorT *vector, NodeItemT item)
{
if(vector->anchor->next==NULL)
vector->anchor->info=item;
else
{
NodeT *temp;
temp=(NodeT*)malloc(sizeof(NodeT));
temp=vector->anchor;
while(temp->next!=NULL)
{
temp=temp->next;
}
NodeT *temp1;
temp1=(NodeT*)malloc(sizeof(NodeT));
temp1->info=item;
temp1->next=NULL;
temp->next=temp1;
}
}
NodeItemT get(const VectorT *vector,int index)
{
int i;
NodeT *getItem;
getItem=(NodeT*)malloc(sizeof(NodeT));
getItem=vector->anchor;
for(i=0;i<index;i++)
{
getItem=getItem->next;
}
return getItem->info;
}