C99では、次のようなものを持つことができます
struct foo
{
int a;
int data[];
};
そしてfoo* f=(foo*)malloc(sizeof(foo)+n)
、配列の長さが である構造体を持つように割り当てn
ます。
クラスが仮想関数を持つサブクラスである場合、C++ で同様のことができますか?
foo
bar のサブクラスのように、次のようにしますstd::unique_ptr<bar> f= std::unique_ptr<foo>((foo*)malloc(sizeof(foo)+n))
メモリの解放が行われるため、そのコードが機能しないことはわかっていますがdelete
、割り当てはで行われましたmalloc