I didn't get past the first two lines, where you allocate memory for a pointer using the size of another pointer that you then dereference even if it doesn't point at anything large enough. Past that, I literally could not read.
Trying to see what that one variable does is almost impossible because all your variables are named something similar. Even an in-page search just captures all your other variables too because of the similar names. I can't sensibly make head nor tail of anything past the first "else" without literally renaming everything and formatting your code.
And you insert spaces into things which totally breaks them up and, from how I read it, kills the association with what they are part of.
Code:
temp_flight_head ->info ->passengers->info->id < temp_passenger ->info ->id && temp_flight_head ->info ->passengers->next
is quite horribly unreadable, for instance, even if I could guess what half those things do because it's hard to physically READ, not just interpret. I've never seen that style of pointer arrow before and didn't even know it was legal to leave a gap. I'm not saying it's *WRONG* (like some parts of your code), but it's certainly harder to read than necessary. And when you code dump two quite large functions, you're expecting people to read and help - you seem to take offence that I find it difficult to read your code.
P.S. I started programming nearly 2 decades ago. I still balls things up and write unreadable code sometimes. Chill out.