Czy istnieje implementacja dynamic array w glibc lub w dowolnej ze standardowych bibliotek systemu Linux dla języka C? Chcę móc dodać do listy, nie martwiąc się o jej rozmiar. Wiem, że std :: vector istnieje dla C++, ale potrzebuję ekwiwalentu C.Czy istnieje automatyczna zmiana rozmiaru tablicy/implementacja dynamicznej tablicy dla C dostarczanej z glibc?
Odpowiedz
Domyślam się, że myślisz o realloc. Ale lepiej zawinąć listy w strukturze śledzić jego obecnej długości
przykład 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);
Zawsze używam realloc na to, można owinąć własne funkcje tablicowe wokół niego. AFAIK, nie ma na to innych wbudowanych rzeczy.
Miałem nadzieję uniknąć ponownego wynalezienia koła. jaka szkoda. Jestem pewna, że omijanie, o którym mówisz, dzieje się przez cały czas. –
Być może jest tam jakaś biblioteka, ale większość z nich jest dla C++ ... – schnaader
:-) W porządku. Będę używał realloc. Dziękuję za szybką odpowiedź. –
W glib jest tablica dynamiczna. (ale nie glibc) Sprawdź GArray i GPtrArray. Tablica dynamiczna nie jest jednak tak naprawdę jak połączona lista.
W każdym razie this to najbardziej przydatne źródło, jakie udało mi się znaleźć podczas nauki glib.
Można również użyć obstacks
- 1. NPOI Automatyczna zmiana rozmiaru kolumny
- 2. Zmiana rozmiaru tablicy 3D
- 3. Angularna linia nvd3 Automatyczna zmiana rozmiaru
- 4. UITextView w UITableViewCell płynna automatyczna zmiana rozmiaru
- 5. Zmiana rozmiaru tablicy
- 6. Czy istnieje funkcja skrótu glibc?
- 7. Wartość początkowa dynamicznej tablicy C++
- 8. tworzenie dynamicznej tablicy ciągów C++
- 9. Okno dialogowe Animacja interfejsu użytkownika jQuery Automatyczna zmiana rozmiaru
- 10. Czy istnieje limit rozmiaru tablicy w ruby?
- 11. automatyczna zmiana granic oglądania przy zmianie rozmiaru matlotlib
- 12. Czy istnieje odpowiednik dynamicznej obsady C++ w Objective-C?
- 13. Zmiana rozmiaru tablicy 2D w Javie
- 14. Jak uzyskać rozmiar pamięci tablicy dynamicznej?
- 15. Czy istnieje automatyczna blokada nawiasów klamrowych dla Geany IDE?
- 16. C++ Sprawdź, czy element istnieje w tablicy
- 17. Czy zmiana rozmiaru tablic wywołuje GC?
- 18. Czy istnieje zasób tablicy ciągów dla programu Visual C# 2005?
- 19. Zmiana rozmiaru układy dynamiczne z ViewFlipper
- 20. Zmiana rozmiaru obrazu za pomocą C#
- 21. zmiana rozmiaru obrazu z pliku
- 22. Jaki jest układ pamięci dynamicznej macierzy X dynamicznej tablicy X?
- 23. Automatyczna aktualizacja C# programów
- 24. Zmiana rozmiaru obrazu z przycięciem
- 25. Czy zmiana rozmiaru wektora powoduje unieważnienie iteratorów?
- 26. Czy zmiana rozmiaru struktury jest przełamującą zmianą w C#?
- 27. Czy istnieje literalna notacja dla tablicy symboli?
- 28. Czy istnieje make_tuple dla C#?
- 29. C++ tworzeniu statycznej jak tablicy z „nowy” lub inny sposób utworzenia dynamicznej tablicy
- 30. const dla rozmiaru tablicy wyrażeń na argumencie
Dang. Pełna implementacja. Wielkie dzięki epatel. –