ЦельMalloc массив из массива структур
Динамически создать массив массив элементов strucs (определено ниже)
typedef struct {
void* data;
} Element;
Вопрос
Я знаю, как malloc массив элементов Element strucs
Element* arrayOfElements = malloc(4 * sizeof(Element));
Но тогда как я могу использовать Malloc из вышеперечисленного? (Массив arrayOfElements)
Вопрос 2
Допустит, массив arrayOfElements называется arrayOfArrayStruc, как бы я продолжу, чтобы установить значение внутри него
Для примера я хочу, чтобы скопировать 65 в arrayOfElements [2], который находится внутри arrayOfArrayStruc 1, как бы я об этом узнал?
Я знаю, как это сделать, если я хочу, чтобы скопировать 65 прямо на arrayOfElements [2]
arrayOfElements[2].data = malloc(sizeof(int));
ptr = arrayOfElements[2].data;
*ptr = 65;
, но им не уверен, как это сделать, если arrayOfElements [2] находится внутри arrayOfArrayStruc 1.
EDIT
Чтобы сделать это более ясно моя цель я сделал картину
Таким образом, в зеленый элемент структуры, определенный
typedef struct {
void* data;
} Element;
Тогда в красном (который имел 4 зеленых ящика) представляет собой массив структур элемента, который я malloc'd использует
Element* arrayOfElements = malloc(4 * sizeof(Element));
Что им ищет сделать, это сохранить выше ^^ в массиве или сделать массив указателей (который является синяя коробка с красной коробки в ней)
Таким образом, в картине «Массив Элемент "содержит 4 элементаных структуры, затем я хочу создать массив для хранения 4" Array Of Element "(или массив из 4 указателей, указывающих на каждый« массив элементов »)
Я думаю, вы этого не хотите. Структура данных, о которой вы думаете, не очень хороша, если вы можете использовать 'struct', вы можете написать свой« * массив * »в качестве структуры и иметь такой массив. –
им не на 100% уверен, если я последую за тобой извиняюсь – CrispyCashew
Массив массивов почти всегда ТЕРРИБАЛЬНАЯ вещь в моем опыте.Обычно ученый (я один) представляю данные как это, потому что это кажется естественным, но очень часто это не * NATURAL * способ сделать это как программист. –