Мне нужна помощь в назначении школы, в частности, с изменением размера памяти, выделенной для указателя WITHOUT realloc.C - массив структурных указателей с динамическим размером без использования realloc?
У меня есть следующие декларации в моей программе.
struct GraphicElement
{
enum{ SIZE = 256 };
unsigned int numLines;
Line* pLines;
char name[SIZE];
};
typedef struct
{
unsigned int numGraphicElements;
GraphicElement* pElements;
}VectorGraphic;
VectorGraphic Image;
Как только программа запустится, я добавлю больше графических элементов в pElements.
Например, после 5 итераций памяти pElements должно быть что-то вроде этого:
[GraphicElement 0] [GraphicElement 1] ... [GraphicElement 4]
Для функции AddGraphicElement (VectorGraphic * Г) у меня есть этот код (с некоторыми линиями удалены для удобства чтения):
vg->pElements = (GraphicElement*)realloc(vg->pElements, sizeof(GraphicElement)*(vg->numGraphicElements+1));
//Then I assign inputs from user into the members of the struct at vg->pElements[vg->numGraphicElements]
vg->numGraphicElements++;
Это работает, НО в соответствии с инструкциями моего профессора мне разрешено использовать malloc и free-no realloc. К сожалению, единственный способ, которым я сделал эту работу, - это realloc.
Может ли кто-нибудь указать мне в правильном направлении, чтобы реализовать это, используя только malloc?
Спасибо!
Не набрасывайте 'malloc()'/'realloc()'. – melpomene