ポインタの共用体

C言語ポインタ完全制覇 5-2-4

あまりにもサイズの違うデータを共用体で宣言する場合は共用体のポインタを使うほうが良い。

union {
    Foo *foo;
    Bar *bar;
    Baz *baz;
} u;

ただし、mallocによるメモリ確保と、freeしなければならないというデメリットもある。

トレードオフかな。どういう場合にどっちを選ぶか悩ましいところ。