Я использовал вектор структуры данных в C. Например,
struct intVector
{
int* head;
size_t capacity;
size_t size;
};
При реализации функции pushIntVector у меня есть два варианта, когда размер массива равен емкости. В этом случае мне нужно выделить больший объем памяти и скопировать в него все данные и освободить старые выделенные данные. Как говорит do c, функция reallo c перераспределяет память для ptr, а функция memcpy копирует память из A в B.
На первый взгляд, reallo c кажется мне подходящим, поскольку я не нужно позаботиться о копировании памяти и освобождении старой, но что делать, если в линейном режиме такой большой памяти нет. С другой стороны, если я где-нибудь запомню c какую-то большую память, я смогу найти ее и легко скопировать в нее и освободить старую. Поэтому здесь я не могу понять, что использовать в моем случае.