Извините, если вопрос не ясен; Мне было довольно сложно объяснить это одним предложением.
Скажем, у меня есть struct
с членом, который является struct
, например, следующее:
struct A {
struct B b;
};
Допустим, я хочу, чтобы экземпляры этой структуры всегда выделялись в куче. Есть ли что-то, что можно получить, изменив это на это? (то есть, удерживая указатель до struct B
)
struct A {
struct B *b;
};
В последнем случае у меня будет пара функций, таких как make_A
и free_A
, которые будут заботиться о выделении и отмене выделения памяти, на которую указывает b
;
Единственный пример, который я могу придумать, где вторая форма может быть предпочтительнее, это когда не все экземпляры struct A
фактически используют b
. В этом случае память может быть сохранена путем выделения дополнительной памяти только тем экземплярам, которые в ней нуждаются.
Есть ли другие случаи, когда вторая форма предлагает что-то полезное?