как создать связанный список таблиц, таблица представляет собой группу элементов - PullRequest
0 голосов
/ 24 июня 2010

то, что я пытаюсь сделать, представлено в моем другом вопросе с кодом.

По сути, мне нужно хранить в памяти таблицу элементов (структур), не существует фиксированного числа элементов, которые могут существовать, но он небольшой, но я все еще не могу использовать массив.

И я не хочу использовать связанный список элементов, потому что я не хочу продолжать добавлять и удалять элементы каждый раз, когда мне нужно что-то изменить.

Вместо этого я хочу выделить кусок памяти с одним malloc, этот фрагмент памяти будет достаточно большим, скажем, для 100 элементов, и если в редком случае мне понадобится больше, я могу выделить другой кусок из 100 элементов и свяжите его с оригиналом ....

Это хорошая идея? есть ли название для такой структуры? это как динамическое расширение массива? Люди на самом деле используют это? или я просто на взломе? Если это плохая идея, что вы рекомендуете использовать вместо этого?

Спасибо

typedef struct Tb{
   POINT points;
   POINT *next;
} TABLE;

typedef struct Pt{
   int x;
   int y;
}POINT;


POINT *mypoints;
int a = 10;
int b = 1000;

mypoints = (POINT*) malloc (100 * sizeof(POINT));

for (int i =0; i < 100; i++) {
    mypoints->x = a++;
    mypoints->y = b++;
    ++mypoints;
}

1 Ответ

1 голос
/ 24 июня 2010

Такие схемы размещения использовались повсеместно, начиная с ранней файловой системы Unix и заканчивая внутренним списком Python.

Код включен!

...