Я довольно новичок в C, и мы получили пример, в котором нам нужно запрограммировать связанный список с предопределенными функциями и параметрами.Теперь у меня проблема с добавлением нового элемента в начало списка, все остальное работает, здесь синтаксис.
int main(){
Vector3D foo;
foo.x = 521;
foo.y = 2;
foo.z = 3;
VectorList * head;
head = create_VL(NULL, &foo);
insertElementBack(head, &foo);
foo.x = 456;
insertElementBack(head, &foo);
foo.x = 2;
insertElementFront(head, &foo);
print_list(head);
printf("%d\n", size(head));
}
void insertElementFront(VectorList* l, Vector3D* v){
VectorList *previous, *new_VL;
previous = &l;
new_VL = NULL;
new_VL = malloc(sizeof(VectorList));
new_VL -> value = *v;
new_VL -> next = previous;
l = new_VL;
}
VectorList *create_VL(VectorList* l, Vector3D* v) {
VectorList* new_VL = (VectorList*)malloc(sizeof(VectorList));
if(new_VL == NULL)
{
printf("Error creating a new node.\n");
exit(0);
}
new_VL->value = *v;
new_VL->next = l;
return new_VL;
}
void insertElementBack(VectorList* l, Vector3D* v){
VectorList *vl = l;
while( vl -> next != NULL){
vl = vl -> next;
}
VectorList *new_List = create_VL(NULL, v);
vl -> next = new_List;
}
Имя и параметры не могут быть изменены, я мог решитьэта проблема с двойным указателем в качестве параметра, но это не разрешено.Может кто-нибудь дать мне подсказку, я много чего перепробовал, но ничего не получалось.
Лучший
Мартин