Сначала правильно определите свою структуру.
typedef struct car{
char car_model[32],car_name[32];
};
typedef struct myList{
myList * next;
car * carObject;
};
Теперь вы пытаетесь вставить в качестве метода сортировки вставок.
void insertElementByTitle(MyList* someList, CarObjects* someCar){
\\I assume someList is pointing the head of the linked list
\\One more assumption that, the Linked List is already sorted and need to inset
\\someCar in the correct position.
MyList *secondPointer = someList->next;
while(secondPointer != null)
{
if(ifCarIsInBetweenSomeListAndSecondPointer(someList,secondPointer,someCar))
{
someList->next = newNode(someCar);
someList->next->next=secondPointer;
break;
}
someList = secondPointer; secondPointer = secondPointer->next;
}
if(secondPointer == null)
{
someList->next = newNode(someCar);
}
}
Теперь вам нужны две функции
myNode* newNode(car * someCar);
bool ifCarIsInBetweenSomeListAndSecondPointer(myNode *someList,myNode *secondPointer,car *someCar);
myNode* newNode(car * someCar){
myNode * t =(struct myNode*)malloc(sizeof(struct myNode));
t->carObject = someCar;
t->next= null;
return t;
}
bool ifCarIsInBetweenSomeListAndSecondPointer(myNode *someList,myNode *secondPointer,car *someCar){
if( (strcmp(someList->carObject->car_name,someCar->carObject)<0) &&(strcmp(someCar->carObject,secondPointer->carObject->car_name)<0))
return true;
return false;
}
См. Онлайн-ссылку, напримеркак связанный с geeksforgeeks список , чтобы лучше понять.