Gibt es eine automatische Array/Dynamic-Array-Implementierung für C, die mit GLIBC geliefert wird?

StackOverflow https://stackoverflow.com/questions/575914

  •  05-09-2019
  •  | 
  •  

Frage

Gibt es eine Dynamisches Array Implementierung in GLIBC oder einer der Standard -Linux -Bibliotheken für c? Ich möchte in der Lage sein, eine Liste hinzuzufügen, ohne mir Sorgen um die Größe zu machen. Ich weiß, dass STD :: Vektor für C ++ existiert, aber ich brauche das C -Äquivalent.

War es hilfreich?

Lösung

Ich denke, Sie denken an Realloc. Aber es ist besser, a zu wickeln aufführen in einer Struktur, um die aktuelle Länge im Auge zu behalten

Beispiel 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);

Andere Tipps

Es gibt ein dynamisches Array in Glib. (Nicht glibc) Schauen Sie sich Garray und GptraRray an. Ein dynamisches Array ist jedoch nicht wirklich dasselbe wie eine verknüpfte Liste.

Wie auch immer Dies ist die nützlichste Ressource, die ich beim Lernen von Glib finden konnte.

Ich benutze immer Realloc Dafür können Sie Ihre eigenen Array -Funktionen darum wickeln. Afaik, dafür gibt es keine anderen eingebauten Dinge.

Sie können auch verwenden Hindernisse

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top