Bifalgorithm post · Computer science one · Sorting Pointers to Elements
How should a comparator handle an array of structure pointers with NULL values?
How should a comparator handle an array of structure pointers with NULL values? (Computer science one · Sorting Pointers to Elements) — "This is essentially eq…
Ideas in this flowchart
- Trier des tableaux de pointeurs Student avec qsort
- Le comparateur doit gérer des pointeurs vers des pointeurs
- Chaque argument pointe vers un élément du tableau, lui-même pointeur vers un Student
- Les arguments sont convertis en const Student ** puis déréférencés pour obtenir un Student *
- Les étudiants sont comparés d’abord par nom de famille, puis par prénom en cas d’égalité
- Le roster est alloué comme Student ** et qsort reçoit la taille d’un Student *
- Les tableaux de pointeurs peuvent contenir des éléments NULL
- Ignorer les pointeurs NULL peut provoquer un comportement indéfini ou une erreur de segmentation
- Le programme peut définir un ordre explicite entre les pointeurs NULL et non NULL
- Deux pointeurs NULL sont considérés comme égaux et le comparateur renvoie 0
- Un pointeur NULL peut être placé avant un pointeur non NULL et produire -1
- Un pointeur non NULL peut être placé après un pointeur NULL et produire 1
- Lorsque les deux pointeurs sont non NULL, la comparaison des noms est appliquée