У меня есть структура, которая имеет 2 параметра, и я создаю 1D-указательный массив типа структуры и выделяю для него память. Это отправляется в функцию со значениями для добавления к ней. Код ниже.Как создать 2D-массив структуры с использованием динамического распределения?
typedef struct {
char name[LENGTH];
double use;
} Task;
Task *ctask;
task = malloc(8 * sizeof(*task));
insert (Task task[], name, use){
//does something
task[i].name = name;
task[i].use = use;
}
, что я хочу знать, как создать 2D-массив указателя типа структуры (размером 8 * 25). И отправьте его в функцию insert().
Это ниже правильно:
Task **ctask;
task = malloc(8 * sizeof(*task));
for(int i=0;i<25;i++){
task[i] = malloc(25 * sizeof(*task));
}
Когда им посылает его в функцию вставки это необходимо изменить, или я могу просто отправить в:
insert(task[i], name, use);
признателен за любую обратную связь благодаря
Hi neo, как я могу назвать функцию вставки для этого 2D-массива (для обоих примеров, которые вы указали), просто отправьте i-й ряд. Поскольку строка вставки вызывает другое соединение для вычисления индекса j. Для 1d-массива tge finction выполняется следующим образом. – anisha
Вставка (Задача задачи [], char * имя1, двойное использование) { int i = getindex (name1); Задача [i] .name = name1; } – anisha
Привет, для 1D массив функция вставки, как показано ниже: Вставка (целевая задача [], символ * имя1, двойное использование) { INT I = GetIndex (name1); Задача [i] .name = name1; } При вызове функции, как изменить функцию вставки, чтобы принять 1 массив из 50 элементов. – anisha