Existe-t-il une implémentation dynamic array dans la bibliothèque glibc ou dans l'une des bibliothèques Linux standard pour C? Je veux être en mesure d'ajouter à une liste sans se soucier de sa taille. Je sais que std :: vector existe pour C++, mais j'ai besoin de l'équivalent C.Existe-t-il une implémentation de tableau/matrice dynamique à redimensionnement automatique pour C fournie avec glibc?
Répondre
Je suppose que vous pensez à realloc. Mais son mieux pour envelopper une liste dans une structure de garder une trace de sa longueur actuelle
Exemple API
struct s_dynamic_array {
int allocated; /* keep track of allocated size */
int usedLength; /* keep track of usage */
int *array; /* dynamicaly grown with realloc */
};
typedef struct s_dynamic_array s_dynamic_array;
s_dynamic_array *new_dynamic_array(int initalSize);
void free_dynamic_array(s_dynamic_array *array);
int size_of_dynamic_array(s_dynamic_array *array);
s_dynamic_array *add_int_to_dynamic_array(s_dynamic_array *array, int value);
int int_at_index(s_dynamic_array *array, int index);
J'utilise toujours realloc pour cela, vous pouvez envelopper vos propres fonctions de tableau autour. AFAIK, il n'y a pas d'autres choses intégrées pour cela.
J'espérais éviter de réinventer la roue. C'est dommage. Je suis sûr que l'emballage dont vous parlez se passe tout le temps. –
Peut-être qu'il existe une bibliothèque pour cela, mais la plupart d'entre eux sont pour le C++ ... – schnaader
:-) Très bien. Je vais utiliser Realloc. Merci pour la réponse rapide. –
Il existe un tableau dynamique dans glib. (pas glibc si) Découvrez GArray et GPtrArray. Un tableau dynamique n'est cependant pas vraiment la même chose qu'une liste chaînée.
De toute façon this est la ressource la plus utile que j'ai pu trouver en apprenant la glib.
Vous pouvez également utiliser obstacks
- 1. Liaison statique à une bibliothèque dynamique. glibc
- 2. CSS, redimensionnement automatique div?
- 3. Redimensionnement dynamique d'un Iframe
- 4. Redimensionnement dynamique de CMFCPropertySheet avec le style PropSheetLook_OneNoteTabs
- 5. Redimensionnement dynamique des zones de Layout Manager
- 6. Redimensionnement automatique des vues Monotouch dans l'iphone
- 7. C++ interagir avec une page Web dynamique?
- 8. Comment utiliser getaddrinfo_a pour résoudre async avec la glibc
- 9. Implémentation de PBKDF2 en C# avec Rfc2898DeriveBytes
- 10. Chargement et redimensionnement dynamique des images
- 11. Liaison dynamique automatique au printemps
- 12. Une implémentation prête à l'emploi de Radix Sort for C#?
- 13. Cocoa-Touch: redimensionnement dynamique des vues
- 14. Implémentation d'une interface sur un type dynamique avec des événements
- 15. Comportement de redimensionnement automatique Flex TextArea - est-ce possible?
- 16. C#: implémentation de SkipLast
- 17. Implémentation de l'interface C#
- 18. Redimensionnement automatique du widget dojo dijit.Grid lors du redimensionnement du conteneur parent
- 19. Redimensionnement et redimensionnement de l'image
- 20. Meilleure implémentation pour une méthode isNumber (chaîne)
- 21. Redimensionnement dynamique des cadres et des formulaires dans Delphi
- 22. Page différente fournie pour Google Crawl
- 23. Mise à jour de la glibc dans Cygwin
- 24. Comment faire un champ txt dynamique à défilement automatique avec actionscript 3?
- 25. éléments de conversion port automatique de code C à C++
- 26. Redimensionnement automatique de l'axe Y dans l'API Google Visualization/Ligne de temps annotée
- 27. SIFR 3 redimensionnement de texte pour s'adapter à la largeur
- 28. Refactor avec une programmation dynamique?
- 29. Création d'une interface utilisateur dynamique avec C#?
- 30. C# Databound ComboBox Mise à jour automatique
Dang. Mise en œuvre complète aussi. Merci beaucoup à epatel. –