Существует ли реализация массива/динамического массива автоизменения размеров для C, который идет с glibc?

Несколько лет спустя просто добавить еще одно простое базовое R-решение, которое по какой-то причине отсутствует здесь xtabs

xtabs(Frequency ~ Category, df)
# Category
# First Second  Third 
#    30      5     34 

Или, если хотите data.frame назад

as.data.frame(xtabs(Frequency ~ Category, df))
#   Category Freq
# 1    First   30
# 2   Second    5
# 3    Third   34
15
задан Ross Rogers 22 February 2009 в 22:04
поделиться

4 ответа

Я предполагаю, что Вы думаете перевыделение . Но лучше для обертывания список в структуре для отслеживания ее текущую длину

пример 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);
10
ответ дан 1 December 2019 в 04:18
поделиться

В бойком существует динамический массив. (не glibc, хотя) Выезд GArray и GPtrArray. Динамический массив не является действительно тем же самым как связанным списком все же.

Так или иначе это является самым полезным ресурсом, который я смог найти при изучении бойкий.

4
ответ дан 1 December 2019 в 04:18
поделиться

Можно также использовать obstacks

1
ответ дан 1 December 2019 в 04:18
поделиться

Я всегда использую перевыделение для этого, Вы могли перенести свои собственные функции массива вокруг этого. AFAIK, нет никаких других встроенных вещей для этого.

1
ответ дан 1 December 2019 в 04:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: