Bifalgorithm post · Computer science one · Searching
How does lsearch() search an array and insert a missing element?
How does lsearch() search an array and insert a missing element? (Computer science one · Searching) — "In the same library, there is another linear search func…
Ideas in this flowchart
- lsearch() réalise une recherche linéaire et peut insérer un élément absent.
- Signature : void *lsearch(const void *key, void *base, size_t *nmemb, size_t size, int(*compar)(const void *, const void *));
- En l’absence d’un élément correspondant, la fonction retourne NULL et tente une insertion.
- La fonction retourne NULL si aucun élément correspondant n’est trouvé.
- L’élément recherché est inséré à la fin du tableau.
- L’insertion suppose qu’il reste suffisamment d’espace valide à la fin du tableau.
- Si l’espace disponible est insuffisant, le comportement est indéfini.
- Le fait que base ne soit pas const indique que la fonction peut modifier le tableau.
- nmemb est transmis par référence afin de pouvoir être modifié.
- Après une insertion, la variable nmemb est incrémentée pour représenter le nouvel élément.
- Il faut garantir soi-même une mémoire valide suffisante pour les insertions.