У меня возникли проблемы с выяснением того, как выделить выделенную массивную массивную массив.C Куча, выделяющая массив жестко закодированных структур
Imagine У меня есть структуры:
struct my_struct
{
...
};
struct holder
{
my_struct *array_of_struct;
...
};
Теперь для создания экземпляра struct holder
хотя, массив struct my_struct
должен быть жестко закодированы, такие как:
struct holder *new_holder()
{
struct holder *my_holder = malloc(sizeof(struct holder));
if (my_holder == NULL)
exit(-1);
struct my_struct arr[] = {mystruct_instace_1, mystruct_instance_2, ...};
holder->array_of_struct = arr;
return holder;
}
Это назначение, хотя не работает, потому что он указывает на arr
, который выделен стекми. Как я могу сделать это назначение holder->array_of_struct
кучей выделенных?
В качестве очень незначительной точки: я бы назвал функцию 'new_holder()' или 'holder_new()'. Как правило, «init» часто означает «инициализировать эту структуру, которую я выделил» и «новый», часто означает «выделять и инициализировать». –